From Joi Ito’s Web:

Aoccdrnig to rscheearch at an Elingsh uinervtisy, it deosn’t mttaer in waht oredr the ltteers in a wrod are, olny taht the frist and lsat ltteres are at the rghit pcleas. The rset can be a toatl mses and you can sitll raed it wouthit a porbelm. Tihs is bcuseae we do not raed ervey lteter by ilstef, but the wrod as a wlohe.

(via BoingBoing)

Jamie Zawinski has written a perl script to convert blocks of normal text into text where letters excluding the first and last are “scrmabled,” to prove the point that legibility is only marginally affected by altering spelling of words, provided that first/last letters are left intact.

http://www.jwz.org/hacks/scrmable.pl

#!/usr/bin/perl -w
# Coyprgiht 2003 Jamie Zawinski
#
# Premssioin to use, cpoy, mdoify, drusbiitte, and slel this stafowre and its
# docneimuatton for any prsopue is hrbeey ganrted wuihott fee, prveodid taht
# the avobe cprgyioht noicte appaer in all coipes and that both taht
# cohgrypit noitce and tihs premssioin noitce aeppar in suppriotng
# dcoumetioantn. No rpeersneatiotns are made about the siuatbliity of tihs
# srofawte for any puorpse. It is provedid “as is” wiuotht exerpss or
# ilmpied waanrrty.
#
# Cretaed: 13-Sep-2003.
# Fix0red: 15-Sep-2003.

require 5;
use diagnostics;
use strict;

my $porgnmae = $0; $porgnmae =~ s@.*/@@g;
my $vresoin = q{ $Revision: 2.2 $ }; $vresoin =~ s/^[^0-9]+([0-9.]+).*$/$1/;

sub scrmable {
while (<>) {
foreach (split (/([^[:alnum:]]*[\s[:punct:]]+)/)) {
if (m/\w/) {
my @w = split (//);
my $A = shift @w;
my $Z = pop @w;
print $A;
if (defined ($Z)) {
my $i = $#w+1;
while ($i–) {
my $j = int rand ($i+1);
@w[$i,$j] = @w[$j,$i];
}
foreach (@w) {
print $_;
}
print $Z;
}
} else {
#print “]”;
print “$_”;
#print “[”;
}
}
}
}

sub usgae {
print STDERR “usage: $porgnmae < text > scrbameld-txet\n”;
exit 1;
}

sub mian {
usgae if ($#ARGV != -1);
scrmable();
}

mian;
exit 0;