Java Glossary

Last updated by Roedy Green ©1996-1999 Canadian Mind Products.

Stuck in a frame? Click here to break out.

D

Dasein
Dasein is a set of applications and libraries that support the development of Enterprise-scalable, n-tier, distributed Java applications.

The classes in the first release provide naming, security, and transaction services as well as class libraries from which to build persistent, distributed business objects.

Right now, the product is very alpha but it is also includes source and is distributed under the terms of the Artistic license.

data warehouse
A large database filled with data infrequently updated. The emphasis is on tools for efficiently searching and summarising the entire database. See OLTP, SQL.
database
See SQL, JDBC
database engine
The program that controls an SQL database in a single user database. See database server.
database server
The program that controls an SQL database and allows it to be used across a LAN or across the Internet. See database engine.
DataTableJ
A grid component JavaBean. $189. It has brothers: CalendarJ, TreeViewJ and WinJ.
Date
See BigDate
dbAnywhere
Symantec's software to allow a client program to run with a single set of JDBC drivers and simultaneously access SQL databases from several different vendors. dbAnywhere also allows ordinary Java-enabled web browsers with no installed JDBC drivers to access an SQL database. The dbAnywhere client JDBC drivers are pure Java, and thus can be downloaded without violating Applet security. It is a bitch to install because there are so many errors in the readme files. See my essay on how to do it with Visual Café Database Development Edition 2.5 See Symantec, three tier, Binder, Link, ProjLink, ListLink, List, Projection, RelationView, MultiView, session, SQL, connection.
dBASE
The original database for the PC. The file formats are still supported by Foxbase and Borland dBase. It has largely been replaced by SQL, which has no standard file format. See xBaseJ.
DEC
Digital Equipment Corporation. The 64-bit Alpha chip supports Digital Unix, OpenVMS and NT. The CISC VAX supports OpenVMS. The StrongARM chip is a small ARM RISC processor for consumer devices and smart phones.
declaration
A declaration of a class lists its instance and class variables and methods. A declaration inside a method tells the type of a local variable.
decompiler
A decompiler takes class files right back to Java source. A disassembler converts them back to something like assembler code for the JVM. links. Myriam Pinon has written one in beta test you can download. Marc W.F. Meurrens maintains a list of decompilers, disassemblers and shrouders. See CafeBabe, ClassCracker, disassembler, Jad, WingDis, SourceAgain.
decorator
See design patterns.
defragger
A defragger is a utility that ensures files on disk are in one contiguous chunk. A defragger may also position files on disk so that frequently used files get prime real estate. Ideally it would order files by last access date, perhaps weighted by frequency of use statistics. It may also defrag and tidy directories and other system tables. It may consolidate free space fragments.

NT Hard Disk Defraggers
Product Strengths Weaknesses
Executive Software Diskeeper Defrags, free space, directories and pagefile.sys. Very slow because it uses the official NT defrag interface. Makes no attempt to position files by last access date. Display during defrag is inaccurate. It makes it look as if directory files are consuming 15% of your hard disk when they are using much less. Directory and pagefile.sys optimisation can only be done at boot time.
Raxco Perfect Disk NT Automatically compresses small files. Makes a crude attempt to place most frequently used files near the center of the disk and unused ones near the edges. Very slow because it uses the official NT defrag interface. Does not defrag the free space unless you tell it to "defrag only", in which case it will do a little. You then need to run it again with that option unchecked to get files moved. It does not defrag the directories or the pagefile.sys file. Often goes into an infinite loop. Leaves many files undefragged after a single pass. The display does not stay up to date well, which gives the impression the program has hung. If you shut down the program by clicking × it won't stop, it just continues in the background as a system process eating up nearly all available CPU cycles.
Symantec Norton Utilities SpeedDisk Likely bug free. Very slow because it uses the official NT defrag interface. Does not defrag directories or the pagefile.sys file. Makes no attempt to place files optimally.
PowerQuest Partition Magic Quick. Not really a defragger. Squishes partitions without attempt to defrag, prior to moving or resizing them. Does not optimise at all. Suspected buggy. Can only run at boot time.
Systems Internals PageDefrag defrags pagefile.sys file. Does nothing else besides defrag pagefile.sys Can only run at boot time. You can almost as easily, and more safely, defrag pagefile.sys by temporarily moving it to another partition in the control panel, reboot, defrag, then move it back, then reboot again. However you need a spare FAT or NTFS partition to do that.
The only reasonably quick and satisfactorily thorough defragger that I know of is Norton SpeedDisk for Windows 9x-FAT partitions. I know of no decent ones for OS/2-HPFS, NT-NTFS or Linux-ext-2 partitions. See Student Projects.

delegate
One way to handle polymorphism is for a method to fob the job off on one of several objects -- each of which has either implemented its version of the required function via extending a class or implementing an interface. To fake a callback you pass an object as a parameter that knows how to do the callback method. See polymorphism, callback.
deliver
the process of figuring out which component an event is destined for, e.g. analysing the x,y co-ordinates of a mouse click to figure out in which panel and in which component in the panel the user clicked the mouse. This process is handled by the native GUI, not the AWT or application code.
Delphi
Inprise's (neé Borland) Object Pascal based RAD. Borland pioneered the ideas behind JavaBeans pluggable components in Delphi, and implemented them with somewhat more elegance.
deprecated
Deprecated literally means disapproved of, but a more accurate translation would be retired. Deprecated means this method is still usable, but you should not use it. It will gradually be phased out. There is a new method to do the same thing. Deprecated methods are marked with a special comment:
/**
  * @deprecate Please now use newMethod()
  * @see newMethod()
  */
derived class
"derived class" in C++ is "subclass" in Javanese. When a class extends a base class, to derive a new class with all the base's variables and methods, plus some of its own, we call the new class the subclass, and the base class the new class's "superclass". See subclass, superclass, extends, inherits.
DES
Data Encryption Standard. A fairly weak encryption technique using 56-bit keys. It uses the same key to encrypt as to decrypt. There is only the private key, which both sender and receiver must know, unlike PGP and digital certificate encryption, which uses a public key to encrypt and a private key to decrypt, and a private key to digitally sign and a public key to verify the signature. A personal computer could crack DES-encoded message within a year; a group of them could do it proportionately faster. Presumably, the CIA has special purpose hardware for doing it in seconds. The advantage DES has over public key encryption is that it is much faster to compute.
design patterns
familiar patterns that keep coming up in coding problems. After zooming in on the nuts and bolts and syntax of Java coding it's a help to zoom out and see ways of "extending" it to bigger problems. There is classic book on Object Oriented program design called Design Patterns by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides. The publisher is Addison Wesley (ISBN: 0-201-63361-2).

They define design patterns as: descriptions of communicating objects and classes that are customised to solve a general design problem in a particular context. A design pattern names, abstracts, and identifies the key aspects of a common design structure that make it useful for creating a reusable object-oriented design. The design pattern identifies the participating classes and instances, their roles and collaborations, and the distribution of responsibilities. Easy to wrap your mind around, eh? Design Pattern people are in love with the power of abstraction and generality. You might even say they prefer to impress rather than inform. However, somehow you are going to have to learn this stuff, even if only to get into the heads of the guys who designed the AWT. Try starting with the code samples in the Design Patterns book. See Doug Lea's "Implementing Design Patterns in Java" or the command pattern or broken_linkMVC or broken_linkMVC Widgets or Peter Mehlitz's lecture or University of Illinois as Urbana-Champaign.

Design Patterns In Java by Mark Grand (ISBN: 0-471-25839-3) is a more accessible book, partly because the examples are all in Java and partly because he has less invested in persuading you how important and brilliant their discoverers are.

Java Design: Building Better Apps and Applets second edition, (ISBN: 0-13-911181-6) by Peter Coad, Mark Mayfield, Pete Coad and Jon Kern is a more general book, but does a better job of explaining how Java interfaces can be used to create better design patterns.

Data Modeling for Information Professionals (ISBN: 0-13-080450-9 ) by Bob Schmidt and David Warren (Editor). Good at describing how to break problems down into an OO solution without any regards to implementation. US $50.

Java in Practice : Design Styles and Idioms for Effective Java (ISBN: 0-201-36065-9) by Nigel Warren and Phil Bishop.

Object-Oriented Programming and Java (ISBN: 981-308-396-4) by Danny C. C. Poo and Derek B. K. Kiong.

See Bill Venner's list of recommended books on design patterns and related topics.

Standard patterns include:
Creational Patterns:Abstract Factory, builder, Factory Method, Prototype, Singleton.
Structural Patterns: Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy.
Behavioural Patterns: Chain Of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method and Visitor.
See reframe.

destroy
dispose of any behind the scenes resources this entire Applet is using (e.g. inside the native GUI). This does not delete the current application object, but it does dispose of all the children. This is required because the Java garbage collection scheme only can work on its own objects, not those inside the native GUI. See also dispose, remove.
Detect Phase
When two modems first connect they go through a mating dance to decide which protocols they will use at which speed.
DHTML
Dynamic Hypertext Markup Language. An extension to HTML that allows you to have objects that interact with each other. See HTML, W3C.
digital cash
One of several new schemes of electronic funds transfer that even more efficiently serve the same functions as hard currency, namely:

One way to stimulate your imagination to invent new forms of digital cash is to imagine an alien watching a documentary about human activities. To help get you into the alien frame of mind, imagine that the images have been electronically retouched to erase all the price tags, money, credit cards and replace them with blank white objects or perfectly transparent objects. All the aliens see are the physical actions. They don't see or understand money. The aliens speculate on motivations for the various human activities. If nothing else, you may get a chuckle. I wrote a little scenario on BIX.com in technology/social;5074 about how aliens might look at the social rituals involved in buying fruits and vegetables.

digital signatures
A way of digitally signing a file or program to ensure it has not been tampered with and that the author is the author claimed. See my essay based on Steven C. Den Beste's work. For an overview, see Simson Garfinkle and Gene Spafford's O'Reilly book with a shark on the cover, Web Security & Commerce (ISBN: 1-56592-269-7). See this list of links for more detail. See Daniel Griscom's cookbook essay on how to digitally sign Applets for Netscape, Also see Ted Landry's FAQ on signing. See Joseph Bowbeer's essay on breaking out of the sandbox.

There are three separate techniques needed, one for Netscape, one for Microsoft Internet Explorer and yet another for the Sun Java Plug-in. Unfortunately there are no sandbox escape mechanisms for the Mac. See signed applets, javakey, sandbox, signcode, signtool.

dimension
the width and height of something. See point.
Dippybird
a collection of Java utility classes and documentation.
Dis
AT&T/Lucent's equivalent of the JVM to run the Limbo language. See Inferno, Limbo, Styx, Plan 9.
disable
Grey out so that the button is still visible, but not active.
disassembler
A program to reverse engineer a class file to get back to human-readable reverse polish sort of Java Forth/Assembler source with comments and parameter and temporary variable names lost. A program to go all the way back to Java source is called a decompiler or reverse compiler. javap -c will do a crude job of disassembling. Javaworld did an article on it around 1997 June. See Shawn Silverman's D-Java disassembler (has trouble with long filenames, uses DOS/DPMI), Kimera Online Disassembler (generates traditional assembler format), JCD (Java Class Disassembler), ClassCracker, Jad, JavaDis (now called WingDis), Macho, Mocha (the author died), SourceAgain, WingDis (generates fairly accurate Java source).
Discovery
Digita/Altavista's search engine for the web, and also a personal search engine you can use on your own hard disks. It can be quite useful for finding the needle code you are looking for in a giant haystack.
dispatch
The entire marshalling process surrounding a remote procedure call. Also the process of delivering an event to a component. See post, deliver, process.
dispose
dispose of any behind the scenes peer resources this component is using (e.g. inside the native GUI). Java can automatically garbage collect stranded objects created by Java, but it needs this help arranging to recycle resources inside the brain-damaged native GUI. This does not delete the current object. E.g. dispose for a panel would remove the menu bar. In particular, it is wise to arrange to dispose of any unneeded graphics objects you obtained with getGraphics. Dispose removes all the appendages to the current component. Does it dispose children?? See also remove, destroy.
distributed objects
communication between objects living in different computers, e.g. the Tempest system. See CORBA, RMI, serialisation.
division
See modulus.
DMP
Download Management Protocol. A protocol for downloading files that also captures extra information about them such as the URL they came from. This allows automatic notification of updates and related announcements and one click download of updates. It does not cover automatic installation.
DNS
Domain Name Service. The name lookup the Internet uses to convert from alphabetic names such as oberon.ark.com to 32-bit binary IP addresses used on packet routing. Such IP addresses are displayed for humans as a dotted quad with four numbers 0..255, e.g. as 204.50.21.34. In Windows 95 there is an auxiliary DNS helper file called C:\WINDOWS\HOSTS. that lists pairs of names and dotted quads. You can use this file for commonly looked up names, or for local names, e.g. names of workstations on the LAN. You can invoke DNS lookup to convert the name to the dotted quad IP address by:
String dottedQuad = InetAddress.getByName("mindprod.com").getHostAddress();
The InetAddress class also lets you work backwards from the dotted quad to get the host name.
String hostname = InetAddress.getAllByName("199.93.4.15").getHostName();
For a LAN, you can assign IP addresses such as 192.168.0.1, 192.168.0.2 to each station since these are never seen on the Internet. See localhost, TCP/IP.
DocFather
A cross-platform Winhelp written in pure Java that provides an index to a set of HTML documents.
Documentation that is essential
domain
In SQL, domain has a most unlikely meaning -- alias. The names of all the various types of data are so nonstandard, it is difficult to write portable SQL. So you make up your own names for the various types and define them as aliases for whatever the term of the month is for them on a particular database. Unfortunately not even the term DOMAIN is standard. The Sybase people call them DATATYPES. See domain names.
domain names
On the Internet, you can access computers by number (IP e.g. 216.66.157.8) or by name e.g. mindprod.com. The name without any www or other prefix is called the domain name. See this essay that will tell you more than you wanted to know about domain names, ownership rights, DNS (Domain Name Service), TLDs (Top Level Domains), country code TLDs, domain name speculation, resources for buying domain names, wet blanket caveats and how to buy a domain name without a broker.

See IP, DNS, TLD, TCP/IP.

double buffering
a technique for being able to refresh the screen faster by using prerasterised off-screen images. Basically you create your images with createImage or fetch them off disk by asking MediaTracker to get them for you via MediaTracker.addImage. You need to make sure the disk images are loaded with MediaTracker.waitFor. Then once all your Image objects are in RAM you can render rapidly in succession with: this.getGraphics().drawImage(thatImage), 0, 0, this); Normally you spin the animation off to a separate thread.

You can't use animated GIF files in Java unless you decompose them yourself and use the double buffering technique.

downcasting
Doing a cast from a base class to a more specific class. The cast does not convert the object, just asserts it actually is a more specific extended object. e.g. Dalamatian d = (Dalmatian) aDog; Most people will stare blankly at you if you use the word downcast. Just use cast. See cast, upcasting.
download
Receive a file. When you send files to BIX, a website or BBS system this is called uploading and when you receive files this is called downloading. You use the following mnemonic: think of BIX as something high and mighty perched on a glass hill, as is the fairy tale.
Why don't we call it send and receive like sensible people do? send and receive are relative verbs. If I entered a send command, does this mean I plan to send something to BIX, or does it mean I want BIX to send something to me? If I say upload there is no ambiguity, just bafflement until you get used to the terminology. In the case one person calls another, the caller uploads (sends) and downloads (receives) files.
drag queen cable
Some printers, Hewlett Packard in particular present female serial interfaces, that look as if they are mimicking DCE modems. However at heart they are actually male DTE terminals mimicking the computer side of the interface. To attach a computer to such a device you need a cable with a male connector on one end and a female on the other, but with null modem-like twists. This cable at first glance looks like a standard modem cable, but inside it is perverse.
DSK
Dvorak Standard Keyboard -- a keyboard layout that is easier than QWERTY on the wrist muscles, and gives about 10% faster speed to good typists, considerably better for the less dexterous. The layout of my Dvorak keyboard looks like this:
',.PYFGCRL/=
AOEUIDHTNS-
;QJKXBMWVZ
Northgate keyboards support DSK by flipping a DIP switch. Microsoft Natural keyboards reputedly also do so, but I could not find the switch. Perhaps they do it in software. Windows-95 supports the DSK layout in software with any keyboard. If you flip to DSK, you must go cold turkey. Any continued QWERTY touch typing will destroy your fledgling DSK finger reflexes. To get around the problem, in a pinch, I type QWERTY with four fingers. During the switchover, you can't touch-type quickly in either system. For more information see my essay on DSK.
DTD
Document Type Definition. A carefully structured document that formally defines the syntax of one of the HTML variants using an BNF variant notation. For some reason, the academics who define HTML, think this document, intended for computers, is the way ordinary humans should learn about HTML. A DTD is pretty well incomprehensible until you already fully understand HTML, or have a background in computer language theory. See HTML.
DTE
Data Terminal Equipment This is the technical term for a computer or anything that pretends to be a computer. DTEs normally present male connectors. Some serial printers pretend to be modems (DCE). Others pretend to be computers (DTE).
DTR
DTR stands for Data Terminal Ready. It is pin 20 of the RS-232C interface between your computer and your modem. It is the cause of 75% of the trouble people have with their modems. The computer places a low voltage on this pin whenever it wants your modem to hang up the phone. Strangely, most modems refuse to pay attention to DTR unless coaxed with special initialization commands or switch settings. Some ignore DTR no matter what you do. Those modems insist on a special "~~~ATH0" command to hang them up that works about 50% of the time.
DUN
Dial Up Networking. Microsoft's term for the software in Windows 95 that attaches a PC to the Internet via a dial up SLIP or PPP link.
Dunce
Dunce is a Windows 95 program by Vector Development that automatically launches your favourite suite of online tools (e.g. Netscape, WinFTP) whenever you fire up the dialer to your ISP and automatically shuts them down when you logoff. It also optionally cuts out various unwanted confirm dialogs. It also automatically invokes the dialer when you fire up a program that needs it. It is very configurable. Download Dunce.
DV
Digital Video. The art of making movies using digital cameras, recording, editing and special effects equipment. This is about ten times cheaper than using film, and produces comparable results. It is possible to set up a home movie studio for only about $20,000. This is higher resolution that current video and hence more demanding. It will become very important about 2006 when HDTV High Definition Television broadcasting hits.
Dvorak
A rude epithet to describe an ignorant Java basher, after the PC Mag colmunist John Dvorak. Also a keyboard layout more efficient than QWERTY sometimes called DSK (Dvorak Standard Keyboard). See DSK.
Dynamic Class Loading
You can dynamically load a class, and create objects of that class just by knowing its name as a String. Typically you would cast the objects created to some interface so that you could invoke methods on it.
Class c = Class.forName("mypackage.Myclass");
Thing t = (Thing) c.newInstance();
t.doSomething();
Dynamic HTML
Dynamic Hypertext Markup Language. An extension to HTML that allows you to have objectst that interact with each other. See DHTML, HTML, W3C.
Dynamo
an application server



CMP_home HTML Checked! award
CMP_home Canadian Mind Products You can get an updated copy of this page from http://mindprod.com/jglossd.html The Mining Company's
Focus on Java
Best of the Net Award