= A Glosary of Computer jargon

INTRODUCTION

  This file contains a list of terms frequently used and some fairly biased
  and un-scientific definitions. The file also includes a number of colloquial
  terms and phrases that are currently (may 2003) used commonly. Often these
  terms are used by writers who are attempting to impress or 'market' as much
  as they are attempting to communicate, and for  this reason, phrases and
  words are often used in a large variety of ways. In some respects it would
  be possible to suggest that the sort of intelligence required in order to
  program or interact successfully with a computer is in many ways an
  'anti-social' type of intelligence. For this reason, the clear use of
  language, which is a highly social function, is often lacking in writers of 
  technical documents.

A QUICK GLOSSARY
  (almost alphabetical)


  *Process
     Since all modern operating systems can do many things at the same time
     (which is known as 'multi-tasking') the different tasks need to be 
     divided up in a manner in which the computer can keep track of which
     particular task it is performing at any one instant. The point is that
     the vast majority of personal computers only contain one CPU or
     central processing unit. A CPU is an extremely rapid calculating device
     but it has the characteristic that it is only capably of performing 
     exactly one operation at any given moment. 
     Also known as a thread. A program may have only one process or many,
     but must have at least one.

  *Automagically
    Used when something happens automatically and unexpectedly but 
    is a welcome event.

  *Automatic Tag Completion
    This is a feature of XML Editors which helps the user to write XML by
    automatically inserting the correct XML tags in a document so that the user
    does not have to type out the tag. In some cases as soon as the user starts
    to type an XML tag, a little 'box' appears which contains a selection of 
    all the tags which the writer could legally insert at that particular spot.
    And the writer can then choose which tag she would like to insert. The 'Netbeans'
    XML editor contains this feature.
    
  *Back-end
  :the back-end
    The part of the program that the user of the program does not see. This part 
    includes the database and everything else.

  *Binary
    A system of yesses and no's (or zero's and one's) which can be (and is) used to
    represent anything in the universe in a very very accurate (but still approximate)
    sort of way. For example the number 4 is 'yes, no, no'  whereas the number 5
    is 'yes, no, yes' and the number 6 is 'yes, yes, yes' and so on. Every thing in the
    universe can be represented in some way using numbers, if you feel like it. This 
    is the system that computers use.

  *Child Node
    This is a node that is 'beneath' another node. This term probably derives from 
    the family-tree diagram analogy. A family-tree may often be drawn as a 
    heirarchical data structure.
    
  *Client (computer software context)
    A program (or computer) which makes requests to another computer for some kind of information.
    
  *Collapse a node
    'collapsing a node' is simply a fanciful way of saying 'clicking on a folder
    so that all the sub-directories of that folder disappear'. But, as we have 
    discussed above, the 'folder' may not be normal folder, but may be something 
    like an XML element.

    Often when a node has been 'expanded' it contains a ridiculously small icon
    of a 'minus sign' (as in the arithmetic sense). If a note has not been 
    expanded or has been collapsed, it is usually represented by another very 
    very small icon of a 'plus sign'. This are simply 'interface' conventions which
    are followed by most programs in order not to excessively confuse the user.
    
    Another convention, instead of the plusses and minusses, is to use pictures of 
    'folders' (in the sense of those cheap yellow cardboard things that you can
    put papers in, and which are supposed to keep the papers from getting damaged.
    ). When the folder is expanded the icon gets changed to a very small picture
    of folder which is open.
    
    -->>   
       - a-parent-node
         - a-child-node
	 - a-sibling-of-the-child-node
	   - a-child-of-the-child-node
	 + an-unexpanded-child-node
       - 	 
    --<<   

  *Contextual Menu
    This is the small pop-up box which you see when you click the right
    mouse button when the mouse is on top of some item (such as a file name).

  *Crap Out
    This term is used when a program 'dies' or 'crashes' for some reason, usually
    because too great a load has been placed on it. It is also possible to use this 
    term when a program just starts to run really really slowly so that it becomes very
    annoying to use. This situation is also known as 'churn', because the program is
    churning over and over but not actually getting anything done. A quick tip, if 
    you see the 'hard-disk light' on your computer lighting up continuously when you are
    trying to do something in a program then the program is using a thing called
    'virtual memory' which is not good.
    
  *Data Structure
    A data structure is a way of storing data. Most data contains links between the
    different pieces of data. These links are often what makes the data meaningful.
    For example a shopping list can be thought of as a 'data structure'. The over-all
    unit of data (used in a plural sense) is the whole shopping list. But the shopping
    list contains 'sub-units' or 'items' or 'elements'. These 'items' are the actual
    items that need to be bought. These items may be linked or grouped in some way.
    They may be linked by the shop in which they need to be bought. These links or
    groupings are the characteristics that form the 'data-structure'. 

  *Document Validation
    This is the process of checking an XML document conforms to the rules, or grammar
    as specified in the DTD or the Schema.

  *Dream-waster
    A program for creating web pages
  *Expand a Node
  *Explorer
    This refers to an application or window which allows a user to
    see an XML document (or other hierarchical data structure) as a 'tree'

  *Export
    This is the process of moving some data from one type of format to another 
    format. It is usually referred to as exporting because it is performed 
    from within a particular application.

  *Folder  
    A 'folder' is (probably) the Microsoft word for a 'directory'. A directory
    is a place (or a virtual place) where files are stored on the hard disk of a 
    computer. Directories and folders (which are the same thing) are designed to 
    be a way to 'organise' or categorize the files which you have. It is a pretty
    bad system because often you will want to categorize something in a number
    of different ways but directories don't allow you to do this because a 
    file can only be in one directory at once.

    The point is, though, that computers are very good at, and find it very easy to,
    categorise things hierarchically (which is how folders and directories are arranged).
    And for this reason, the designers of the first operating systems decided to foist
    apon the user (you) a system which was convenient for the computer but not convenient
    for human beings. This is not the only time which this has happened.

  *Front-end
    This is the part of a program that users of that program actually see. In other words,
    'front-end' is fairly synonymous with the term 'user interface' or just 'interface'.
    If the program is running in an operating system such as Microsoft Windows then the 
    front-end will be called a 'Graphical User Interface' or 'GUI'.

  *GUI                                           o
    'Graphical User Interface'. This is a type of interface to a program that
    has 'windows' and things that the user can amuse herself by clicking on,
    such as buttons and menus and little boxes with check marks in them. The
    alternative to this type of interface is 'text-only' or 'console-based' or
    'terminal-based' or 'DOS box' or 'Command window' or 'command console'. This is
    where a small black box appears on your screen and asks you to type things like
    'which dungeon do you enter?'. This 'console' interface is a relic from the
    days when computer monitors found it difficult to display images and so if a
    program didn't really need images then it didn't use them. Most people have
    a kind of mortal fear of a 'text only' type of computer program interface,
    probably because of some summer spent in a large western department store,
    entering product codes into some dodgy terminal screen with flickering green
    text and which demanded that the user have a great mastery of all aspects of
    the 'tab' key. 

  *Hierarchical Database
    A kind of upside down tree of data. Examples of hierarchical databases include
    a file-system on a computer or an XML document. Another example of hierarchical
    data is one branch of a family tree, starting with a great-grandparent (for
    example) and listing all of that persons descendants in a 'tree' like format.

  *Ide
    This stands for Integrated Development Environment, and is a program which helps
    programmers to write other programs (!).

  *Instant Messaging
    This is the process of sending a message to another person without
    any delay or 'caching'. This is different from email because emails
    are not delivered until the recipient opens his or her 'inbox'

  *Internet-Exploder
    A Microsoft Web Browser
    
  *Mark-up
    Mark-up is a method off adding more information to a text document.
    This information can be added for different purposes. One main purpose
    is to change the appearance of the text document. This is the case
    for HTML. Another purpose is to insert data which will allow the 
    document to exchanged with other people, computers, or programs. 
    This is the case for XML.
    
  *Migrate
    This is the process of moving from one type of computer system or program
    to another system. 

  *Name space
    This is a set of names which are all unique within their own little world, and
    their own little context, but which in another context or world may not be
    unique and which may mean something completely different. For example in the 
    world of chess 'Kibbitz' means to look over somebody's shoulder and offer advice 
    about what move they should play next, but in some other world (possibly Yiddish
    or German) that word may not mean that at all. That wasn't a very good example. Sorry.
    Name spaces are important in the XML world.

  *Node
    This originally was a Latin or Greek word meaning 'knot'. (Actually its 
    probably an Indo-european word since it has a very strong similarity
    and 'cognate-ness' with the work 'knot'. It is unlikely that the Saxons or
    the Angles or the Normans would have taken such a basic word from a 
    'classical' culture -such as the Roman- especially considering that the 
    word 'knot' is important in a sea-faring sense, which all those people, to 
    some extent, must have been in order to arrive at England. So the 
    English, who-ever they are, probably didn't take the work 'knot' from the 
    Romans, who distributed a large number of words. So the similarity between
    the word 'knot' and the word 'node' cannot be explained through simple 
    inheritance, and for this reason its likely that the words are connected
    in a much more ancient way.)
    
    A node is any point at which different paths (or branches or threads or lines
    or anything long and thin) come together. This is why a node is a 'knot', because
    knots are used to join different threads together (sometimes). The word node
    is much beloved by mathematicians and people who write computer software because
    it does make them sound knowledgeable and abstract, which is how they like to 
    sound, and because the word is fairly general and can apply to lots of different
    situations. Some examples of nodes are; a cross-roads where various streets meet,
    the place where a family tree branches, the spot where the branch of a tree joins
    the trunk of the tree, a directory which contains files and other directories, an
    XML element which contains other XML elements, and so on.

    The word 'node' is often used when talking about the visual display of XML
    elements.

  *Parent Node
    A node which contains other nodes within itself. 
    
  *Parsing
    The process of turning an XML document into something that a computer
    can actually understand. When this word is spoken out loud it almost always sounds
    identical to the word 'passing' which generally causes all sorts of confusion.
    XML files need to be 'parsed' before they can be 'transformed' (into something
    like HTML or anything else). Parsing is not really a completely simple thing for
    a computer to do, and can take more time than other sorts of tasks. When something
    is difficult for a computer to do, it is refered to as 'processor intensive' or
    'resource intensive' or even 'memory intensive'.

  *Plain Text
    This is an important 'concept' which I have not dealt with in the
    main text of this document. Plain text is the sort of stuff the 
    the program Microsoft Notepad can deal with. It is text without
    an visual 'formatting' applied. Although it may seem completely obvious
    plain text is actually very important because all different operating
    systems can understand it (Macintosh, Unix, Linux and Microsoft Windows).
    Technically there are slight differences in the way that Unix, Mac and
    MS Windows writes and reades 'plain text'. This difference has to do
    with the way that the end of each line in a text file is represented 
    (or 'encoded'). But the difference is not very great, and there are
    lots of programs which can convert the different 'line endings' for
    different types of operating systems. These programs are often called
    something like 'unix2dos' or 'fromDos' or 'mac2unix' or whatever.
    In the Unix and Linux world an enormous number of programs deal with
    'plain text' and most of these programs are available in MS Windows.
    XML is a plain text format. In other words, you can edit XML in any
    text editor including something like Microsoft Notepad. 
    
  *Protocol
    An agreed apon set of messages and replies that allows two different sorts
    of computers to talk to each other. Or more generally, any agreed set of 
    signals that allows different people or computers to comunicate. An example 
    of a protocol is 'Morse Code' (That system of dots and dashes that get translated
    into characters of the alphabet). Another example is that system which 
    American Indians apparently used of sending smoke signals to each other.
    For a protocol to work, the person at the other end has to know what your
    signal (or 'codes') actually mean. Protocols can have 'layers'. For example
    you could agree with some one that if you sent them the word 'blue'
    using smoke signals then it would mean that you had run out of water. 
    By establishing another set of signals (in this case there is only one 
    signal, the word 'blue') on top of the already established 'smoke signal'
    protocol, you have effectively added a 'layer' on top of that protocol.
    This is not very well explained, but the concept is quite simple when you 
    get it. In the world of computer networks, protocols and layers of protocols
    are very important. For example, HTTP (the Hyper Text Transport Protocol)
    is one very common protocol. The Alexis program uses another XML based
    protocol which is a 'layer' on top of the HTTP protocol. I have probably
    made this sound more complicated than it really is. 
    
  *Relational Database
    A system of tables (things which contain rows and columns) which contain
    information about a particular subject area. These tables can be 'queried'
    using a thing called 'structured query language' (SQL) which is fairly 
    similar to English. Relational Databases have been the most commonly used over
    the last decade.
    
  *Rendering
    The process of turning mark-up tags into some kind of visual display.
    Also know as 'displaying', 'formatted for visual output', 'outputting',
    'transforming into an end user document' etc.

  *Root Node
    This is the 'top-most' node, the node which contains all the other nodes. 
  *Server
    A program (or computer)  which manages information and responds to requests from other
    programs which may or may not be on the same computer.
 
  *Sibling Node
    This is an XML (or other type of) node which is on the same 'level' as another
    node. 
  *Source
   
  *Source Code
    This is the code that a program is 'built' or created with. The reason that it
    is often not possible to get the source code for a program is that the company
    that made the program is worried that if you have the source code you wont need
    to pay them to use the program which they have written. This is because 
    
  *Source Editor
    This is an editor which actually allows you to edit the 'codes' which are in a 
    file. This is in a sense the opposite of 'WYSIWYG'. An XML editor really needs to
    have both a 'source editor' and a 'wysiwyg' editor so that the writer can choose
    which method suits her best. This is a general principal of interface design; allow
    the user to choose rather than being 'big-brotherish'.

  *Source View
    This is a view of a file which displays literally everything in the file rather
    than shielding the user from certain 'tricky' stuff which they might not want to
    see. For example when you click on the 'view source' menu item when you are 
    viewing a web page, what is displayed is a 'source view'. But the source in
    question does not have to be HTML. It could XML, java, smoke-signal-codes, etc.

  *System
    A elaborate name for a program or a set of programs or for anything that
    does something

  *Tag Completion
  *Tags
    Tags are specific examples of mark-up, such as <i> or <a href="something">
    
  *Text Editor/ Word-processor
    These two terms are NOT the same. The difference is important. A text editor
    does not provide features that allow you to 'format' the text which you are
    writing. That is, there are no 'italic' buttons or 'bold' buttons. Microsoft
    Word is a 'Word Processor' where as Microsoft Notepad is a 'Text Editor'. Word
    Processors are a terrible, terrible waste of time and perhaps should be
    illegal. If you are writing large numbers of documents which are fairly similar,
    you probably should use a text editor.

  *Tree View
    This is a view of an XML Document (or other hierarchical system) which 
    displays the document as set of 'branches' of a 'tree' in a similar
    manner to MS File Explorer.
    
  *Validation
  *Vapor-ware 
    (I spelt this without a 'u' because it is an American invention). 
    This is a program or a system which is 'proposed' or designed or talked about
    and discussed but which is never actually created. Interesting vapor-ware is 
    in some ways more important than it may seem, because programs which are never
    created can sometimes influence programs which are. It is said, for example,
    that the 'hyper-text' system (which all web-pages use now) was based on another
    system which was vapor-ware and much more ambitious than HTML or hyperlinks.

  *Virtual World
    A world which doesn't exist


    
  *WYSIWYG                                  o
    This can be pronounced 'wizzy wig' or something similar. Its a fairly
    common and dominating term. It basically means that you can edit a 
    document as if you were using some dodgy word-processor even though
    the document, or file, or thing, that you are editing is actually an HTML
    page or some other type of file which in reality contains all sorts of 
    strange codes. An XML editor can also have a WYSIWYG interface so that 
    the writer of the XML document doesn't have to see all the XML tags when
    she is writing. Dream-weaver is an example of a program that has a WYSIWYG
    interface, so that the web designer can create web pages without writing 
    any HTML codes.

  *Xml
    This is a way of adding extra information to a document in order to 
    allow it to be exchanged with other computers, programs or people, or
    to allow it to be transformed into other formats, such as HTML,
    plain text, Adobe PDF or WAP (which is the format used by mobile phones).
    XML is a simple but flexible system that uses 'tags' add information to
    a text document. To write an XML document is very simple, here is one
    -->>    
      <my-quick-doc>
        <sunshine>blue sky</sunshine>
	<clouds>silver lining</clouds>
	<child-element>plain text content</child-element>
	<another-child-element some-attribute="some-attribute-value">confusion</another-child-element>
	<why>Thats the question</why>
      </my-quick-doc>
    --<<
  
  *Xml DTD
    This is another way of doing what a 'xml schema' does. It is an older and
    apparently less preferable technique.

  *Xml Editor
    This is a piece of software that helps you write XML Documents. Strictly
    speaking every 'text editor' is able to edit XML documents (because XML is
    just text) but in practice it is often useful to have an editor which
    helps the user to type the tags, makes sure that the tags are 'legal' for
    the current XML documents and do other things like this.
    
  *Xml Grammar
  *Xml Schema
    This is a way of specifying the rules which a particular type of XML document must obey.
    For example the 'schema' will state what tags can be used, and where the 
    tags can be used. Actually a schema is itself an XML document, that is, it
    obeys all the rules of XML. Its analogous to having the constitution of a 
    country written in exactly the same format as all the other legislation
    for that country. This is considered to be a big advantage.
    
  *Xml Syntax
    This is the set of rules which govern a particular XML document and
    specify which tags may be used in that document.

  *meta rule
    This is a rule about other rules. The word 'meta' is originally Greek for something like
    'above' but now can be used for any kind of thought which is more abstract than
    another thought.

  *well formed
    If a document adheres to the general rules of XML, then it is called 
    'well formed'. This is different from 'validation'.