Thursday, January 04, 2007
Computer literacy begins with forgiveness and a text editor
When a job ad says "basic computer literacy" they mean you can do simple tasks with Microsoft (stock ticker symbol MSFT) Office. But that's a fairly recent side effect of the MSFT monopoly.
Before the monopoly, "basic computer literacy" meant you knew what files and directories (aka "folders") are. It meant you could copy files between removable media (floppy disk or tape) and the file system on the computer. Maybe you could copy files from one computer to another with FTP or UUCP. It meant you could create and edit files containing characters in the American Standard Code for Information Interchange alphabet, US-ASCII. You could probably create simple "batch files" (programs written in the language used to issue commands on the computer) for tasks you do over and over. And you probably knew the customary behavior of word processors and spreadsheets well enough that you could learn a new one pretty fast. US-ASCII turns out to have lasting importance in this world of international alphabets, because it's the alphabet of the Internet Protocols, and of most scripting and programming languages. HTML (and XML) files and Perl and shell programs are written in US-ASCII.
A string of characters in the US-ASCII alphabet is called "plain text." It was called that decades before there were cell phones and "text messaging." A file containing that string, which might be really, really long, a novel or a screenplay, is a plain text file. (A word processor file with all the words set in 12 point courier is not plain text. Plain text doesn't have fonts and sizes.) Programs that are used to create plain text files are called text editors.
I hope you can see the old "computer literacy" was much more fundamental than the new one. The new kind means you have memorized the visual cues presented by MS-Office and its desktop. The old kind means you understand enough about what's going on to be in control. Knowledge is power. Power is freedom.
Strike a blow for freedom, for yourself and your community. Get a text editor and learn to create and edit plain text files. These days my favorite text editor is Vi Improved. Also known as vim. I use it to compose email, computer programs, and web pages. It runs on MS-Windoze, all flavors of unix including Linux and Mac OS X, and every other computer system still in use today. Go to the site and get vim, if you don't already have it. (Most Linux distributions include it.)
But don't read Vim's instructions yet. If you already know the original Berkeley unix text editor vi, you can use Vim as if it were vi. And (here's the weird part) you'll be more efficient and less confused than someone who just picked up Vim and figured it out from its books and guides and tutorials.
So get the paper An Introduction to Display Editing with Vi (that's online in HTML) (here it is in PDF so you can print it and read it on the bus) by Bill Joy and Mark Horton and skim it, first. Ignore all that stuff about antique user interface equipment like teletypes and slow, dumb terminals. Joy and Horton explain vi as a simple, regular language. It makes sense. Every other tutorial I have seen make it look like a pile of cryptic and arbitrary commands and modes, and it's a lot harder to learn that way. Learn to use Vim a little bit as if it were vi.
Then poke around the Vim tutorial a little. Just a little. In fact, ignore all of it except the part where you make Vim aware of your mouse by setting the variable mouse to the value a. A for aware, I suppose. Maybe look a little farther to discover you can put that command (set mouse=a) in your vim startup file. If you're running vim on a server far away, and you logged in through PuTTY or any modern unix terminal program, mouse click becomes just one more cursor motion command, and select (left drag) and paste (middle click) work.
Even if you use Vim's snazzy graphical user interface you will still be faster and work smarter if you grok what the heck Bill was thinking when he made vi the way it is. And speaking of that, the very first step to learning vi, and to learning quite a lot of other computer culture, is FORGIVENESS! You have to forgive vi for being the way it is. There are really good reasons for it to be that way, and you will come to appreciate them over time, but I promise you will not see it right away unless you are a whole lot smarter than I am.
As you migrate out of the MSFT trap and learn to really use computers, you will discover the editing commands introduced with vi work in quite a few other programs. If you've got a shell (the dreaded command line interface) on a modern unix server, you can edit the command you're typing. The maze game nethack uses them to steer your hero. The file browser/pager less knows a lot of vi commands.
Before the monopoly, "basic computer literacy" meant you knew what files and directories (aka "folders") are. It meant you could copy files between removable media (floppy disk or tape) and the file system on the computer. Maybe you could copy files from one computer to another with FTP or UUCP. It meant you could create and edit files containing characters in the American Standard Code for Information Interchange alphabet, US-ASCII. You could probably create simple "batch files" (programs written in the language used to issue commands on the computer) for tasks you do over and over. And you probably knew the customary behavior of word processors and spreadsheets well enough that you could learn a new one pretty fast. US-ASCII turns out to have lasting importance in this world of international alphabets, because it's the alphabet of the Internet Protocols, and of most scripting and programming languages. HTML (and XML) files and Perl and shell programs are written in US-ASCII.
A string of characters in the US-ASCII alphabet is called "plain text." It was called that decades before there were cell phones and "text messaging." A file containing that string, which might be really, really long, a novel or a screenplay, is a plain text file. (A word processor file with all the words set in 12 point courier is not plain text. Plain text doesn't have fonts and sizes.) Programs that are used to create plain text files are called text editors.
I hope you can see the old "computer literacy" was much more fundamental than the new one. The new kind means you have memorized the visual cues presented by MS-Office and its desktop. The old kind means you understand enough about what's going on to be in control. Knowledge is power. Power is freedom.
Strike a blow for freedom, for yourself and your community. Get a text editor and learn to create and edit plain text files. These days my favorite text editor is Vi Improved. Also known as vim. I use it to compose email, computer programs, and web pages. It runs on MS-Windoze, all flavors of unix including Linux and Mac OS X, and every other computer system still in use today. Go to the site and get vim, if you don't already have it. (Most Linux distributions include it.)
But don't read Vim's instructions yet. If you already know the original Berkeley unix text editor vi, you can use Vim as if it were vi. And (here's the weird part) you'll be more efficient and less confused than someone who just picked up Vim and figured it out from its books and guides and tutorials.
So get the paper An Introduction to Display Editing with Vi (that's online in HTML) (here it is in PDF so you can print it and read it on the bus) by Bill Joy and Mark Horton and skim it, first. Ignore all that stuff about antique user interface equipment like teletypes and slow, dumb terminals. Joy and Horton explain vi as a simple, regular language. It makes sense. Every other tutorial I have seen make it look like a pile of cryptic and arbitrary commands and modes, and it's a lot harder to learn that way. Learn to use Vim a little bit as if it were vi.
Then poke around the Vim tutorial a little. Just a little. In fact, ignore all of it except the part where you make Vim aware of your mouse by setting the variable mouse to the value a. A for aware, I suppose. Maybe look a little farther to discover you can put that command (set mouse=a) in your vim startup file. If you're running vim on a server far away, and you logged in through PuTTY or any modern unix terminal program, mouse click becomes just one more cursor motion command, and select (left drag) and paste (middle click) work.
Even if you use Vim's snazzy graphical user interface you will still be faster and work smarter if you grok what the heck Bill was thinking when he made vi the way it is. And speaking of that, the very first step to learning vi, and to learning quite a lot of other computer culture, is FORGIVENESS! You have to forgive vi for being the way it is. There are really good reasons for it to be that way, and you will come to appreciate them over time, but I promise you will not see it right away unless you are a whole lot smarter than I am.
As you migrate out of the MSFT trap and learn to really use computers, you will discover the editing commands introduced with vi work in quite a few other programs. If you've got a shell (the dreaded command line interface) on a modern unix server, you can edit the command you're typing. The maze game nethack uses them to steer your hero. The file browser/pager less knows a lot of vi commands.