hyperland

September 19th, 2006

Through the wonders of the web, a fascinating 1990 documentary on hypertext has surfaced on Google video. The documentary is called Hyperland and it is written and narrated by Douglas Adams.

Set as a dream sequence, Douglas explores the wonderful world of “non-sequential television” with his agent Tom, played by Tom Baker (arguably the best Doctor Who but now best known for the voice-overs in Little Britain). hyperland title screen - spot the laptop!Interviews with experts of the time allow them to demonstrate their fantastic hypertext applications built in hypercard. Remember that?

Of course there is the obligatory (for then) delve into VR interfaces and film of someone from NASA “flying” through his filing cabinet. But the “fast-forward” to the future (2005!) is amusing since the 3D interface they demonstrate pales even against the first version of Doom, let alone current games.

Still, worth a viewing if only to see how far we’ve come. And for the great product shot of an early Apple laptop sitting in Douglas’s lounge.

Click here to view the video at Google. Or do like I do and copy that link into video downloader to take a local copy to view offline.

I have to ‘fess up for a particularly soft spot for Douglas. I used to live in Islington, just a few blocks from his house, and thus spend my days walking past the flat where Zaphod met TrinityTrillian, or where Fenchurch lived. Our regular pizza restaurant was the same one frequented by Dirk Gently. Made all his books that much more real to me when you could stroll through the set on the way to/from work.

recognising an individual’s sensory learning preference

July 9th, 2006

It is reasonably well recognised (e.g. we won’t question it here!) that each of us has a preferred or dominant sensory system. This means a person will prefer to communicate or learn in either:

  • a visual way (e.g. seeing)
  • an auditory way (e.g. hearing)
  • a kinesthetic way (e.g. touching)

This article provides clues to help determine your own preferred learning style, and that of individuals you interact with.

Note: Having a preferred learning style does not mean the other methods are not used at all. It simply means learning will be more effective if expressed in the preferred manner.

activity learning style
visual auditory kinesthetic
speak Say:

  • That looks right
  • I see now
  • I’m in the dark
  • I can picture that
  • Get it into perspective
Say:

  • That sounds right
  • That rings a bell
  • That tells me
  • Listen to me
  • Suddenly it clicked
Say:

  • That feels right
  • A smooth answer
  • A concrete example
  • Let’s handle this
  • I have a grip on it
spell try to see the word spell how it sounds write it down to see if it feels right
visualise see vivid detailed pictures think in sounds have few images but they involve movement
concentrate are distracted by untidiness or movement are distracted by sound or noises are distracted by movement
anger become silent and seething express it in an outburst storm off, clench your fists or grit your teeth
forget something forget names but not faces forget faces but not names remember best what you did
contact people on business prefer direct, face-to-face meetings prefer the phone talk it out while walking or during some other activity
relax prefer to watch TV, read or see a play prefer to listen to music prefer to play sports/games
enjoy the arts like paintings like music like dancing
reward someone write remarks of praise on their work or in a note give them oral praise give them a pat on the back
try to interpret someone’s mood look (primarily) at their facial expression listen (primarily) to their voice watch (primarily) their body movements
read like descriptive scenes/stop to imagine the scene enjoy dialogue and conversation/”hear” the characters talk prefer action stories, or you are not a keen reader
learn like to see demonstrations, diagrams, slides, posters like verbal instructions, talks or lectures like direct involvement: learning through activities, role playing, etc
are inactive look around, doodle, watch something talk to yourself or other people fidget
talk talk sparingly but dislike listening for too long enjoy listening but are impatient to talk gesture a lot and use expressive movements

copyright and your website

June 9th, 2006

Copyright is simply the protection given to an author to allow them to enjoy the fruits of their labours. It is generated automatically and freely whenever anyone creates an original expression of an idea (be it a web page design, a sound clip, a paragraph in an article, etc).

For anyone creating/administering a website, copyright therefore impacts you in two ways:

  • copyright in your original content (eg protecting your site from others).
  • copyright in non-original content that you are using, and honouring that copyright (eg protecting your site from yourselves)

protecting your site from others

For your site, copyright in its content exists automatically once the content has been created. That copyright continues, also automatically, until a significant period after the author’s death (in Australia its 50 years; other countries 50 or 70 years). You do not need to apply for copyright
or register in any way.

Not all your content is/can be copyrighted. For example facts can not be copyrighted (you cannot sue someone else for repeating your statement that England won the 1966 World Cup). Also non-copyrighted are names, short phrases, or ideas. For example, if you have a great idea for a killer website, and mention that idea on your site, you have no recourse on anyone who actually builds that site. Your idea is not protected, only its expression. Hence to protect it, build it.

To © or not to ©

If you look at most websites, you will find a copyright notice (with the special © character - added as ©). This is actually unnecessary as all countries that are signatories to the Bern Convention (which includes all those you’ve actually a legal chance of having your copyright honoured in) agree to respect your copyright without the symbol/notice.

However adding the notice is recommended, not for legal purposes, but for a prompt to your users that you are serious about protecting your interests. Place it clearly on your home page and all other pages that might attract copying. If you have some content you are happy to be copied under certain conditions, link your copyright prompt to a statement of those terms and conditions.

preventing copying

Obviously copyright does not stop the unscrupulous from copying your hard work. And in reality, there is little that can be done to prevent the determined thief. There are some ways of slowing them down (using secure PDFs, spreading content over multiple pages, etc), and there are lawyers to help when found out, but in reality the best defense against copying is encouraging the reader to view your content, in your context. Provide a reason why it is better to link to your content than copy it, and you may prevent one more copy.

Additionally, it may be prudent to accept that some content will be copied, and provide terms/instructions by which it can be copied “on your terms”. Eg if you’ve written a useful piece of code, let others use it providing they include a reference/link to its origin. This way, whilst you’ve not prevented the copy, what you’ve actually done is convert it into an advertisement!

If you are prepared to allow your content to be copied or developed on (within limits), consider Creative Commons licensing. This alternative to normal copyright protection allows you to specify simply and quickly the terms under which your content can be used by others. For example if you’re happy for your artwork to be used for not-for-profit work but not for commercial gain, then you can add a Creative Commons licence that provides exactly that right.

The Creative Commons movement is building a great deal of momentum worldwide. It is well worth investigating if you feel the “all-or-nothing” approach to existing copyright is not the fairest way forward for your own efforts.

If you find an unauthorised copy

If you are unlucky enough to find a site that is copying your material against your wishes, then you have a variety of options available, best approached in the order shown:

  1. contact the infringing site

    Mail/email the administrator of the infringing site, identifying which of their content is actually infringing your copyright, and detailing exactly what restitution you would like (eg remove it, mention your name, etc). When contacting them, do not immediately assume that the copying is malicious and deliberate. Sometimes the source of material cannot be identified, with even the best intentions. Try and keep it civil, at least at first!
  2. contact the infringing site’s host or service provider.

    If you are unhappy with the response from the site administrator, consider contacting the site’s host or service provider. As a business, they are often more cogniscent of the rights of others, and thus more interested in protecting their own legal interests.
  3. contact a lawyer

    If the copyright infringement is costing you serious money, then get a lawyer. And get a lawyer that specialises in copyright and/or online law. This will cost serious amounts of money, and thus only worthwhile if your reputation, or bottom-line, is being seriously impacted.

Proving it’s a copy

As you can imagine, it’s often difficult to prove someone has copied your content. Obvious clues (like file dates) are easily modified. Therefore if you are significantly worried about copying, consider “seeding” your content.

Seeding entails hiding identifying marks/symbols within your content. For example add a deliberate spelling mistake or two, use a peculiar piece of code, add some useless/unnecessary HTML tags, etc. The aim is to add something that anyone generating the page themselves would not have included; finding these in another site therefore provides strong evidence that they’ve copied your original.

Protecting your site from yourselves

Often it’s not the risk of having to sue others that you need to consider on your site. You can also easily end up where someone is in a position to sue you.

The best defense against unintentional copyright infringement is education. Make sure that all parties that contribute to your site are aware of its requirements. It is also suggested that your formal content publication process (you do have one?) includes a step/check of copyright status.

Who owns your company’s copyrights?

Whilst copyright is normally vested in the author, for employees their standard employment terms usually specify copyright of anything produced whilst employed is vested in the employer. However you might need to check this.

For others providing you with material (consultants, bureaus, contractors, etc) check the terms under which they have been employed. If needing to employ such a third party, ensure the issue of copyright is resolved in the contract.

Remember that for your company documents, just because they have been published in one format, or to one audience, does not necessarily mean that they are free to be published on your website. For example, many annual reports contain stock photos or images. These may have been purchased from a bureau without online publication permission being included in the terms.

If you’d like to copy something…

The purpose of copyright law is not to prevent copying, just to prevent unauthorised copying. Hence, if you find some content, online or otherwise, that you’d like to include on your site you may be able to. The steps to do so are quite simple.

  1. ask the author for permission to copy. If the content is online, this is easy, and often simply requires e-mailing the site owner/administrator.

    When asking, make clear exactly how/where you wish to re-use their content. We won’t give permission to someone to “copy your site”, but if you want to take this article, we’d be more sympathetic.

  2. respect the response given. This can range from “not at all”, through “yes - but with conditions” to an unqualified “yes”.

    Possible conditions can include to identify the origin of the material (with/without a link to it),
    to not alter or modify the material (eg not to take one part deliberately out of context), or not defame or denigrate the original (we don’t all want to be listed on your “worst website of the week” page). As with these examples, they are not often onerous. Most authors will be flattered you want to use their work.

Content not under your control

Your website may contain content that is not under your direct control. For example you may run a discussion forum that the public can contribute to. For such areas you need to demonstrate your own commitment to the law (by notices/terms for submitters) as well as, potentially, monitoring submissions for infringements. And if any are identified, by yourselves or another party, then they should be acted on swiftly.

I don’t want to copy it, just link to it….

For all those who consider the internet a lawless land, the law of copyright applies quite simply and fairly to it. However it is when considering the legal role of hyperlinks that the issue becomes a little greyer. With hyperlinks, sites can ostensibly include content produced
by others, without taking a physical copy. The issue becomes even fuzzier when considering frames: using them it is possible to load an entire site ‘inside your own’ and hence imply ownership of it in all total.

If your presentation of the link or content implies ownership, then you’re potentially up for double legal whammy. If the lawyers don’t pursue you for copyright infringement, then they could also pursue you for deceptive/misleading trading (in the same way as implying your homebrand PC is made by IBM by just sticking a logo on the front).

Another potential risk situation is that called ‘deep-linking’. This is where you link to content deep within a site, not to imply ownership, but to circumvent other pages/details the owning site require its users to view beforehand. For example you could replicate a job posting from a site without reproducing some of the advertisement or owner information that they require to be displayed. If in doubt, always check with the author about what conditions, if any, they will accept your links.

Conclusions

This article provides an introduction to the issue of online copyright and provides an outline of the various facets of it that may impact your organisation as it goes online.

The key point to remember is that copyright law is built to enable and manage copying and the distribution of ideas, not to restrict it. Your aim therefore, should not necessarily be to prevent all copying, but to ensure that whatever copying is undertaken under terms you have dictated.

More Information

A quick internet search will highlight a series of useful sites on which the issue of copyright can be further investigated. Some suggested starting points:

producing iso9000 compliant documentation

May 15th, 2006

To be ISO 9000 compliant a document must:

  • be identifiable
  • be verifiable
  • be legible

identifiable

Each document must have some unique identification. this can be as simple as its title (you may only have one ’sales manual’ for example), or can be a more involved/useful numbering scheme (document 4.4.103, etc).

For most organisations the identifier is known. It is normally placed in the header/footer. A useful point is to make sure it appears on every page, even if the document is to be double-sided.

verifiable

Once we are able to identify if we’re reading the right document, we need to be able to verify it’s the right copy. This requires two things:

  • verify it’s the right version

    this requires some form of issue or version numbering. Simplest technique is either an issue date or a issue number. Unless there is some valid reason try not to use both together as it is overkill and can confuse people. Also if using issue dates for documents that do not change often it is possible to have a current version with an old issue date. If this could cause doubt (’why is the current version three years old?’) then consider using version numbers instead.
  • verify it’s complete

    this requires some form of numbering that allows you to know at a glance if the document is complete. For page numbering the common technique is the ‘page 3 of 6′ format. Another valid technique is to add a closing statement at the end, eg ‘this is the end of the xyz procedure’. For online documents, the verification is usually part of the design (eg a web page ends with a standard footer, etc).

legible

Finally, ISO documents need to be followed (like all documents, except this time an auditor comes and checks). However since no-one deliberately writes confusing and misleading documents I assume you have this point covered already. This section therefore address some of the definitions of ‘legible’ that a quality system auditor will be looking for.

When reviewing your document’s legibility it is worth understanding a little of how an auditor will review that legibility. An auditor will review a document for two main requirements.

  • Does it address all the requirements of the standard?
  • Is it likely to be followed?

The first point (addresses requirements) is not one of compliance, per se. It is determined by the design of your quality system. A document can be compliant with ISO 9000 but still be insufficient for certification if it does not address the certification requirements expected by your Quality Manual.

The latter point is gleaned from an impression of how easily the content can be understood and adhered to - the worse the impression the more likely that users will not have followed it, and thus the better the place to look to find inconsistencies between expected and actual behaviour. In essence, the more confusing the document, the more likely users will not have followed it, and the more time an auditor will spend looking for inconsistencies.

So what kind of particular questions will an auditor be asking when looking at a document?

  • Are the steps in any task clear and simple to follow?
  • Are responsibilities for the task clearly defined (by role, not name)?
  • Are references to other documents, or equipment, clear enough for users to follow correctly?
  • If records are kept of the task, are those records clearly defined?

documentation is compliant? now what?

Sitting above these individual document requirements is the issue of document control. This is the collective term for the procedures needed to look after our unique, verified, legible documents to ensure their content is correct and copies are given to the right people.

PHP basics: sorting a multi-column array

April 15th, 2006

PHP support for arrays is fantastic, particularly for those of us with a history using ASP. One of the key advantages of arrays is the ability to compile our information, sort it as we want, and then display it. Sorting a single-column array is straightforward (there is a sort() function). But what about sorting a multi-column array? There is a function (array_multisort()) that does it, but understanding how to use it is a challenge. This article hopefully provides a simpler explanation.

If you are using a multi-column array to store data from a database, it is much simpler and faster to get the data directly from the database in the order required (use the ORDER BY clause in your SELECT statement). This function is best used for multi-column arrays that are generated locally, or only in part from a database.

To sort a multi-column array:

  1. for each column you want to sort by:
    • store the contents of the column in its own 1-column array
    • add that 1-column array as a parameter
    • follow that parameter with optional parameters about sort type and sort order
  2. after all the column parameters , add the entire array (all columns) as the final parameter

sort type and order

Sort type can be:

  • SORT_REGULAR - compare/sort normally (default)
  • SORT_NUMERIC - compare/sort as numbers
  • SORT_STRING - compare/sort as strings

Sort regular uses standard ASCII order (ABa is 3 characters in regular order). The other two options operate more logically (eg aAB is the same characters now in string order).

Sort order can be:

  • SORT_ASC - ascending order (default)
  • SORT_DESC - descending order

for example…

For example. here’s a 3-column array we want to sort:

<?php
  $data[0]['name']= 'Google';
  $data[0]['url'] = 'http://www.google.com';
  $data[0]['rank'] = 45;

  $data[1]['name']= 'Yahoo';
  $data[1]['url'] = 'http://www.yahoo.com';
  $data[1]['rank'] = 17;

  $data[2]['name']= 'MSN';
  $data[2]['url'] = 'http://www.msn.com';
  $data[2]['rank'] = 6;
?>

Assume we want to sort this array by rank (ascending order). The first step is to store the rank column as a standalone array. This is easy to do using the foreach command:

<?php
  foreach ($data as $val)
  {
    $sortarray[] = $val['rank'];
  }
?>

To sort by this column, use array_multisort and pass our newly created rank array as the first parameter:

<?php
  array_multisort($sortarray, $data);
?>

To change the sort to descending order, add the required order parameter after the 1-column array:

<?php
  array_multisort($sortarray, SORT_DESC, $data);
?>

To sort by more than one column (eg to sort by rank, then name), simply repeat the above steps for the subsequent column(s) and add the paramaters to the list.

<?php
  foreach ($data as $val)
  {
    $sortarray2[] = $val['name'];
  }
  array_multisort($sortarray, SORT_DESC, $sortarray2, $data);
?>

more information

The official explanation of array_multisort can be found in the PHP manual.