Domain: ddj.com
Stories and comments across the archive that link to ddj.com.
Comments · 361
-
Debunking myths with referencesFirst of all, the QWERTY keyboard was not designed to slow down typists. It was designed to reduce mechanical problems by intelligent arrangement of the letters (maximizing the separation of the most frequently used letters), and thus the angles at which the swingarms interacted. Those few of you who (like me) have ever USED a mechanical swingarm typewriter know what i'm talking about -- the swingarms that jam are the ones that tend to be close together. But the other story sounds better, and so it gets repeated in places like Newsweek -- and, of course, Slashdot. A nice article on this myth effect can be found at http://www.ddj.com/articles/1 998/9875/9875l/9875l.htm
Second, there have been no conclusive studies that Dvorak typists are any faster than QWERTY typists. The article at http://www.reasonmag.com/9606/Fe.QWERT Y.html gives a reasonably good summary of the non-evidence of Dvorak superiority.
Lastly, my personal experience is that a friend who has switched to Dvorak said "It's a nightmare of pain relearning a new layout for no benefit whatsoever. Go ahead and learn Dvorak if you don't know how to type, but don't go through the psychic trauma of rewiring your fingers if you already are using QWERTY. Its not worth it."
Anyway. Use whatever keyboard makes you happy.
Peter
-
Windows DLLs: Threat or Menace?
Oops, one more comment:
Writing programs that rely on Windows DLLs is like a building a house of cards. Here's a great DDJ article about how to solve your DLL woes - past, present, and future!
"Windows DLLs: Threat or Menace?"
Here's an excert:
The answer to the almost limitless problems of DLLs is obvious: Don't use them. Wherever possible, use static linking. Imagine the benefits. Some other developer's boneheaded installation or poorly designed updated DLL will not break your application. Your application won't fail because a component is missing, or because a registry setting has been lost or modified incorrectly. Your application won't behave differently depending on the applications already loaded, as a DLL-based application can if another application has already loaded a different copy of one of its components. Your installation will be exceptionally simple, and an uninstall will be just as easy.
I should warn you of one small hassle if you try DLL-free development. Your users won't believe that there is only one file to install.
-
Classic Dr. Dobb's article about Windows DLL Hell
"Windows DLLs: Threat or Menace?". If you write Win32 apps, I highly recommend you read this article. In a nutshell, it recommends that you statically link to libraries and do not use DLLs (because of their headaches and versioning problems).
-
Dynamic frustrations.Under Windows you occasionally see that problem too, with differing versions of DLL's getting mixed up, overwritten, or lost and the general instability that results.
Well, this is the funniest damn thing I've read in a while. That is an incredible understatement. What Windows has is pretty much the same problem that people are talking about here. It is just that there are a lot of GUI tools to help straighten it out. Still, I'm a Windows developer (who has written DLLs), yet I can't figure out why my &#$# Win95 machine starts complaining about a missing MPR.DLL at random times. (And then there is the "minor" change that Microsoft recently made to one of the MFC DLLs that broke our application in certain cases. Not so fun given Microsoft's penchant for upgrading DLLs under the covers at every opportunity.)
The longer I work in this industry, the more I agree with another Dr. Dobbs editorial. DLLs, dynamic linking, whatever you call it, causes more problems then it fixes, especially in these days of $200 20 gig disks and $70 64 meg SIMMs.
At the moment, I work for a Windows developer, and our particulary product uses DLLs in order to support multiple types of configurations. The amount of work keeping multiple versions of DLLs and calling executables straight is immense, and it is too damn easy to make a "trivial" change that kills backwards compatibility.
As a relative Linux newbie, I used to think the situation there was better, especially with the Red Hat RPM system. Hah! After one novice attempt at installing egcs, I somehow managed to screw up my system entirely to the point where "hello world" wouldn't compile. It was a month of off and on work to get to the point where I could compile a program again. (Hell, the streamio library segfaults still, but I don't have the energy to figure out if this is a configuration issue.) (And all this because I just wanted to play with bitset.)
Versioning is a huge problem that seems to effect both Windows and Linux equally. Current attempts to fix it (Windows COM+, for one) don't seem to really work. I say, scrap the whole thing and static link everything. If you include the libraries you need in your binary, it won't break when someone else screws up the system.
-
More submissionsNot all of these are online.
Hardware
- Teletype ASR-33, teletypewriter very popular as a computer terminal.
- Popular Electronics, January 1975, cover story: MITS Altair 8800 microcomputer.
- Apple II with its color graphics and multiple easy-to-access expansion slots.
- IBM PC and its corporate desktop success providing cheap hardware for all.
- IBM's MicroChannel bus and its failure showed the popularity of open hardware.
- Hayes modem command set allowed modem control without custom device driver.
- VGA graphics. Finally the IBM PC could show reasonable images. Web browsing later became a significant side effect.
Software
- VisiCalc. Killer App. Welcome to "electronic spreadsheets." A reason to buy a computer.
Early Computer Magazines
- People's Computer Company, an organization promoting personal and community computing. A computer newspaper before there were computer publications. Community Memory was an early idea for sharing computer databases at computing storefronts.
- dr. dobb's journal of Computer Calisthenics & Orthodontia, an early proponent of publishing source code. Evolved into Dr. Dobb's Journal.
- Byte magazine, its huge 50,000 copy beginning and eventually the first computer magazine to appear on general magazine racks.
- Kilobaud magazine, very popular hacker magazine, often with sources (remember programs on vinyl sheets for playback from phonograph player into cassette interfaces?).
Conceptual
- Homebrew Computer Club. Build your own computer if you can't afford a small CDC or PDP to heat your house. I was designing a TTL personal computer until the 8080 appeared; sure was nice to have quad NAND DIPs.
- Xerox PARC center with its influential network and user interface experiments.
- MECC: Minnesota Educational Computing Consortium" spread timeshare computing to all Minnesota school districts, then Apple computers. I worked there in the 1970's. State of MN has since sold it.
-
Re:Anti-Trust
I know it's difficult to cut thru the politics but it's not at all a matter of 'I like this' and 'I hate that' - facts are facts and the cases must be decided on that basis, not on a popularity or vilification contest. The issues is, did/does Microsoft use illegal/unethical tactics to tie in and promote their products and shut out potential competitors, in their hubris arrogantly thinking they are too smart or too good to get caught at it? The analysis of the AARD code says to me: YES, they did/do. A civilized marketplace cannot allow one opportunistic monopolist to become so obsessed with success that they think they're somehow exempt, special or above the laws that the rest of us are held to.
Chuck -
Re:Evidence NOT clear; just in case, let's distort
See this 1993 Dr Dobbs article for a discussion of the lengths to which MS went in order to hide the origin of the Dr DOS error message, the text of which read
"Non-fatal error detected: error #4D53
(Please contact Windows 3.1 beta support.)
Press ENTER to continue."
A quote from the Dr Dobbs article:
"The effect of the AARD code is to create a new and highly artificial test of DOS compatibility. The obfuscations and encryptions make it difficult to even determine what is being tested. An indication that the AARD code's obfuscation is successful is the fact that Novell's most recent version of DR DOS (that is, Novell DOS 7) fails the test, even though it is otherwise far more compatible with MS-DOS than previous versions." -
AARD code
Apparently the AARD code is present but disabled in the final release version of 3.1, but was active in prerelease builds from late 1991 to January 1992.
Here is the article from Dr. Dobbs Journal, by Andrew Schulman, who discovered the anomaly (apparently on a tip from a reporter).
Caldera (I think) had a program on their web site (with assembly code) which would re-enable the AARD code in a release version of Windows 3.1, for demonstration purposes.
-
Notes on the relevant Windows codeActually, there was an extensive article by Andrew Schulman in the September 1993 Dr. Dobbs J. -- check it out at http://www.ddj.com/articles/1 993/9309/9309d/9309d.htm. It is sometimes called the AARD code, from the initials found with the Microsoft copyright notice in the code.
Summary:
- This code is present in beta test versions starting at pre-release build 3.10.068 and later, including the versions which shipped (albeit in quiescent form).
- It is thoroughly encrypted with a mechanism that can be exposed only by the use of hardware debuggers such as Soft-ICE. It is the only code segment so encrypted.
- The code performs a check to see whether certain MS data structures are present -- the "country information" field of all things, and segment-alignment info -- that have nothing to do with the functionality of MS-Windows:
"The effect of the AARD code is to create a new and highly artificial test of DOS compatibility. The obfuscations and encryptions make it difficult to even determine what is being tested. An indication that the AARD code's obfuscation is successful is the fact that Novell's most recent version of DR DOS (that is, Novell DOS 7) fails the test, even though it is otherwise far more compatible with MS-DOS than previous versions."
- "WIN.COM and other programs incorporating AARD code don't make any use of the information gained..."
-
Caldera deserves this one
Of all the anti-trust suits outstanding against Microsoft right now (DOJ, Bristol, Caldera), I think Caldera's has the most merit.
There is overwhelming evidence that MS deliberatly tried to make Win3.1 (at least the beta) unneccessarily incompatible with DRDOS. This 1993 Dr. Dobbs article shows the code that does it and points out how it was deliberatly obfuscated, too. -
Re:Can Linux use 4GB?
If designed right, it should be able to access 32 GB.
Sun has done it already with Solaris 7 3/99 release:
The Physical Address Extension (PAE) is a new feature of the Intel platform edition of the 3/99 update that provides greater scalability and higher performance for Intel Pentium Pro systems. It allows you to address up to 32 Gbytes of physical memory on a Pentium Pro system. By addressing more physical memory, more processes can reside concurrently in the same physical memory, allowing you to run multiple databases and memory-intensive applications that support large numbers of users.
I would think that any processor based on the PPro would also be able to access 32GB RAM in the same manner. www.x86.org has information on using 36-bit paging and 2MB pages on the PPro (though according to them they're called _page_ address extensions, not physical address extensions). Wouldn't that give you 64GB though?
P.S. I'd lke to see the Intel system that can hold 32GB RAM....