Commodore RAM expansion units

Commodore RAM expansion units

The 6502-family CPUs in Commodore 8-bit computers famously used 64K of RAM at a time. But in 1985, Commodore introduced a cartridge that added up to 512K of RAM to the 128. Commodore followed up soon after with a 256K cartridge for the 64. How did Commodore RAM expansion units work?

Read more

Finally! A $60 RAMdisk on a PCI card

PC World: Taiwanese hardware maker Gigabyte Technology has stumbled upon a faster way to boot up PCs based on Microsoft’s Windows XP operating system.

Please allow me to quote something I penned back in 1999: “I’d love to see someone design and release a battery-backed hardware RAM disk for PCs… Such devices existed in the early 1990s for the Commodore 64/128 and the Apple IIgs and permitted these systems to boot their graphical operating systems before the PCs of their day had managed to bring up a C: prompt. A similar device for today’s PCs would do more to boost system performance than any other innovation I see coming down the pipeline any time soon.”You can find the paragraph, in context, on page 214 of Optimizing Windows for Games, Graphics and Multimedia.

Enough self-congratulation. I’m glad someone finally made this device, which is called the Gigabyte i-Ram PCI ramdisk. And here’s the great news: The device is going to cost about $60 without RAM. 512-meg DIMMs can be expensive or cheap. A quick scan turns up some that I’d be willing to trust for $41 from Newegg.com.

It plugs into a PCI slot but it only uses the slot for power. Data itself is transferred via a serial ATA cable. This improves compatibility, I suppose, but I would have liked to have seen the serial ATA hardware integrated onto the board. But that would have increased costs, and arguably most of the people who will want this already have serial ATA. At least the target market does. I don’t know if this is going to prove more popular with people who want to hot rod their Pentium 4s, or people who want to increase the life expectancy of an older PC. This thing would do wonders for Mom’s PC, or my sister’s PC, and their primary interests are word processing and e-mail. They would love the speed and the quiet.

I’ve got all sorts of ideas for this thing. The article says it’ll be out in July. I want one BAD.

What kinds of ideas? For one, I’d love to eliminate the biggest source of latency in my PCs. I tend not to hit the CPU all that hard most of the time, but I sure do hit my disks hard. I’d love to eliminate the last mechanical piece in the system. Let’s face it: Hard drives crash. This thing gets wiped out if it loses power for 12 hours, but how often does that really happen? And if you’ve got a UPS and you shut the system down, shouldn’t it last indefinitely? Backing the data up to a real hard drive on the network somewhere, or onto a memory stick will solve that issue. Between that and a Ghost image of the system partition, you can recover from a power outage fast.

And who doesn’t want an ultra-quiet PC? Get a cool-running CPU and video card, and maybe, just maybe, your PC can survive on its case fan alone again. With this on a mini-ITX board with an external power supply, a completely fanless, ultra-quick PC might be possible.

And I can see all sorts of applications for this thing for my new employer.

I’m as excited as a puppy when company comes over bearing dog biscuits.

Why I run Debian, and some Debian tricks

After Dan Bowman pointed out another blogger’s recent difficulties installing Evolution on Mandrake 8.1, I had little comment other than, “That wouldn’t be an issue if you’re running Debian.” Well, I think I said a few other things because I tend to be wordy, but that was the only important thing I had to say.Debian is one of the more difficult Linux distributions to install (you have to know what hardware is in your machine–it doesn’t nicely autodetect everything like Mandrake), but it’s far and away the easiest distribution to maintain. We’ll get back to that in a minute.

Released versions of Debian tend to be ultra-conservative. The current version, Debian 2.2r5, still uses the 2.2.19 kernel, for one thing (and that’s a fairly recent change). The current 2.2 kernel is either 2.2.39 or 2.2.40. All packages (at least all the ones anyone uses anymore) are constantly checked and maintained and patched. In theory, the current stable Debian release ought to be the most bullet-proof Linux available.

Besides Debian Stable, there’s also Debian Testing and Debian Unstable. Debian Unstable is pretty cutting-edge, but I’ve had no problems running it. I just keep up with the current patches and the system runs fine. I know people who run production servers on Testing and Unstable and get away with it.

If you want the latest and greatest stuff, after you install Debian, edit the file /etc/apt/sources.list and uncomment the ftp and http lines. Next, copy and paste those lines, then edit the “stable” to read “unstable.” (Or if you’re more conservative, edit it to read “testing.”) Be aware that occasionally you’ll run into problems running packages from unstable under stable. I ran Evolution, Galeon, Dillo, Sylpheed, and a multitude of other packages from unstable just fine, but when I installed AbiWord (a really nice, lean, mean, superfast word processor, by the way) it failed to run right. I upgraded to unstable, and then it worked perfectly.

OK, let’s talk some tricks.

Want to upgrade your distribution after a new version comes out, or upgrade from stable to testing or unstable? Easy. Type this:

apt-get update ; apt-get dist-upgrade

Then Debian will go download the pieces it needs to upgrade itself.

Want to keep your system up to date with any little changes (security patches, whatever) that may have happened recently? Type this:

apt-get update ; apt-get upgrade

So Debian lets you keep a current and presumably secure installation very easily. If you run that line regularly, you can rest assured that if your system is insecure, it’s not Debian’s fault but rather a misconfiguration on your part.

Want to try out some new piece of software? Forget having to hunt down RPMs or keep track of your distribution CD. Check availability with this command sequence:

apt-get update ; apt-cache pkgnames [name of program]

Found it? Excellent. Install it with this command:

apt-get install [name of program]

And if it wasn’t as great as you heard, you can uninstall it with this command:

apt-get remove [name of program]

System acting goofy? This’ll cure much that ails you:

apt-get clean ; apt-get update ; apt-get check

So from a system administration standpoint, Debian is great. Debian developers often try to justify the difficulty of installation by saying you only have to run it once, and to a degree, they’re right.

Compiling a kernel under Debian

I found a nice document detailing customizing your kernel under Debian. The standard method works under Debian, of course, but it’s cleaner to do it within the confines of your package manager–then it doesn’t go stomping on files you modified. Plus it’s actually a little easier to let Debian handle some of the details.

Here are the notes I took while using the document.

With additions:
Use kernel-source-2.4.17

export CFLAGS=”-O3 -mcpu=i686 -march=i386 -fforce-addr -fomit-frame-pointer -funroll-loops -frerun-cse-after-loop -frerun-loop-opt -malign-functions=4″
export CXXFLAGS=”-O3 -mcpu=i686 -march=i386 -fforce-addr -fomit-frame-pointer -funroll-loops -frerun-cse-after-loop -frerun-loop-opt -malign-functions=4″

Using -march=i686 is known to cause instability and not improve performance by any noticeable amount. The kernel mostly ignores these settings but I set them anyway. You can alternatively set them in the file /etc/profile. If you ever find yourself compiling apps from source, you want these options set so they’ll perform optimally.

A correction:
Debian tar doesn’t seem to support the -I switch for bzip2. So I extracted the archive with the following:
bunzip2 -k -c kernel-source-2.4.17.tar.bz2 | tar -xf –

the -k switch tells bzip2 to keep the original file intact, while -c tells it to extract to stdout. The | redirects stdout to the specified program, in this case, tar. -xf tells it to extract the file.

I got an error on make xconfig:

make: wish: command not found.

So I headed off to www.debian.org/distrib/packages. At the bottom of the page, there’s a form where you can type a filename and it’ll tell you what package it comes from. Type in “wish,” hit enter, and I get a long list, including /usr/bin/wish8.3 in a package named libs/tk8.3. Sounds promising. So I do an apt-get install tk8.3 and I’m in business. Type make xconfig again, and we’re set. This page is also a really good way to hunt down packages if you don’t know exactly how Debian named it.

Options I chose for kernel compilation:

Code maturity level options: prompt for development and/or incomplete code/drivers. I answered Yes, so I’d get modern filesystem support.
Loadable module support: I answered yes to all. I’ve read that disabling modules and compiling everything directly into the kernel can improve performance but I’m wary of that. If the kernel’s too big, the system won’t boot. And the idea of modules is to keep only what you need in memory. So I suppose there are instances where a no-modules kernel could increase performance, but there are certainly instances where it would hurt. I chose to be conservative.
Processor type and features: I changed a couple of the defaults. Double-check the processor family option; in my experience it’s usually but not always correct. Enable MTRR support unless you’re using a 486, Pentium, or AMD K5 CPU. All other reasonably modern CPUs, including AMD, Cyrix, Intel, and WinChip, support MTRRs for increased GUI performance. Since the PC I’m using only has one CPU, I disable SMP support. Then I enable local APIC and IO-APIC support on uniprocessors.
General setup: I accepted the defaults, because aggressive use of APM makes me really nervous. Under Windows, APM always does me more harm than good.
MTD: Since I don’t use any flash memory devices, I accepted the defaults of No.
Parallel port support: Curiously, this was disabled by default. This PC has a parallel port but I only use network printers, so I left it disabled to save a little memory.
Plug and play configuration: I said no to ISA plug and play support, since this machine is a laptop and won’t have any ISA PnP cards. On modern PCs that have no ISA slots, say N.
Block devices: The defaults are usually sufficient, but some configurations need RAM disk support and initrd support turned on. If you’re going to mess around with ISO images, you’ll probably want to turn on loopback device support.
Multi-device support: I’ve never seen a laptop with RAID, so the default of disabling it all works great for me.
Networking options: The defaults are fine for most uses. If you’re going to make a router or firewall out of your PC, enable Netfilter.
Telephony support: I disabled it.
ATA/IDE/MFM/RLL support: Disable it if you have an all-SCSI system. I don’t. Turn on SCSI emulation support if you use a CD-R or CD-RW. Under IDE chipset support/bugfixes, disable the chipsets your PC doesn’t have. This laptop has an Intel chipset, so all I had enabled were Generic PCI IDE chipset support, Sharing PCI IDE Interrupts support, Generic PCI bus-master support, Use PCI DMA by default when available, Intel PIIXn chipset support, PIIXn tuning support.
SCSI support: I have an all-IDE system (unfortunately), so I disabled it. Note that SCSI emulation for a CD-R counts as a SCSI device, as does a parallel port Zip drive. Since I have neither, I’m safe disabling it to save some memory and speed up boot time slightly.
IEEE 1394 (Firewire support): I disabled it since I have no Firewire ports.
I2O device support: I disabled it.
Network device support: This can be tricky. I turned off SLIP and PPP since I don’t use them. You may need PPP. I turned off ARCnet support, which you’ll probably do as well since ARCnet is very rare. I have a 100-megabit 3Com 3c556 NIC in this laptop, so I went into Ethernet 10 or 100 Mbit, drilled down to 3COM cards, and said yes to 3c590/3c900 series, since that’s the driver the 3c556 uses. I turned off the others. I like to compile support for the machine’s NIC straight into the kernel when I can, since it speeds up network configuration at boot time. On servers, I’ve been known to compile support for every type of NIC I own into the kernel, so that if I ever have to change NICs, it’ll come back up automatically without any configuration from me. I turned off wireless, token-ring, PCMCIA, ATM, amateur radio, infrared, and ISDN support.
Old CD-ROM drivers: You can probably turn this off, unless you know you have an old proprietary 1X or 2X CD-ROM drive. These were the drives that generally plugged straight into an ISA sound card, and they were very common on 486s. I sold tons of these things in 1994; I’m pretty sure that by the time I was selling PCs again in the summer of 1995, everything I was selling had an IDE drive in it.
Input core support: I don’t use USB input devices, so I turned it off.
Character devices: Near the bottom, after Ftape support, there are options for specific chipsets. You can find out what chipset you have by typing the command lspci in a shell. (You have to be root to do this–use the su command if you’re logged in as yourself, as you should be.) This laptop has an Intel 440BX chipset, so I turned off the VIA, AMD, SiS and ALI support.
Multimedia devices: Disable video for Linux unless you have a capture card. Most will disable Radio adapters as well.
File systems: I enable Ext3 and ReiserFS, along with DOS FAT and VFAT (as modules), ISO 9660 and Joliet, NTFS read-only (as module). Under network file systems, I enable SMB since I (unfortunately) work in Windows environments. I disable NFS since we have no NFS servers.
Console drivers: The defaults work for me.
Sound: Since I have onboard sound, I enable sound support and pick my chipset, in this case, ESS Maestro3. I disable all others.
USB support: I have USB ports but don’t use them. I left it enabled just in case, but I’m not sure why.
Bluetooth: I don’t use it, so I disabled it.
Kernel Hacking: I disabled Kernel debugging, the default.
Whew! Hit Save and Exit. Exit X to save some system resources while compiling and installing.

The end result was an up-to-date kernel (2.4.17) that was about 200K smaller than the stock 2.2.19 kernel and boots to a login prompt in 18 seconds flat, as opposed to 45 seconds before. Much of the improvement is due to the 3c590 driver loading faster as part of the kernel rather than as a module, and the kernel no longer searching for phantom SCSI devices. But Charlie Sebold told me it’s his experience that recent 2.4.x kernels boot a lot faster than earlier kernels.

It’s not perfect–I don’t have sound completely working yet–but I found some clues. I’m not overly concerned about sound support though. The system beeps at me when I have mail, and for work purposes, that’s all the sound I need. I don’t see any point in turning my PC into a multimedia tribute to Billy Joel or Star Wars or Quake III.

The search for the compressed ramdisk is over!

Things that make you go… D’OH! I spent, as I’ve said a number of times before, the better part of a weekend trying to figure out how to run Windows from a ramdisk. I figured I couldn’t have been the first to do such a thing, but I couldn’t find any reference online to anyone who had. After a weekend of turning some hair gray, I got it working on my own.

Then I set out to compress my ramdisk. Disk compression makes sense when disk space is expensive, and RAM is comparatively expensive, and even if disk compression slows it down by 100%, compressed RAM is still many orders of magnitude faster than a metal disk. I couldn’t get it working. I didn’t say it was impossible, because I’ll never write anything off as impossible, but I said I couldn’t get it working. I figured that’d be the last I’d hear of it.

Then over the weekend, Tony Brewer, a reader of the Optimizing Windows, wrote in, quoted that paragraph verbatim and casually said, “It’s most definitely possible.” I was flabbergasted. Had he done it? I wrote back and asked if he’d done it and if he’d be willing to share the secret.

Indeed he had, and he was kind enough to share the secret. It turns out I was very, very close to getting it working. But close is only good enough in nuclear war, not computers.

Here’s what he had to say:

Dave,

There is an elegant and simple method for running Win9x on a compressed RAM disk. Assuming that Win9x is already installed on C: and using the same drive letters as in Chapter 11 of your book:

Run DriveSpace in Windows to create an empty compressed drive E: of the desired size using free space on C:, re-boot, then install Win9x to E:windows (with the swap file on C:). Edit c:\msdos.sys, c:\config.sys and c:\autoexec.bat as follows:

c:msdos.sys
——————
[Paths]WinDir=e:\windows
WinBootDir=e:\windows
HostWinBootDrv=c

c:\config.sys
—————–
device=c:\windows\himem.sys
device=c:\windows\emm386.exe    ;or use umbpci.sys
dos=high,umb
devicehigh=c:\windows\ifshlp.sys
devicehigh=c:\windows\setver.exe

c:\autoexec.bat
———————

path=e:\windows;e:\windows\command;e:\windows\system
set temp=c:\ temp
set tmp=c:\temp
….

After re-booting, Win9x should run on the compressed drive E:, hosted by physical disk C:. To have a compressed RAM disk, the host must be an uncompressed RAM disk, D: for example. In c:d??space.ini (c:dblspace.ini or c:drvspace.ini, probably the former), change the ActivateDrive setting to read:

ActivateDrive=E,D1

This tells the DriveSpace driver to mount the compressed volume file (CVF) d??space.001 as drive E: with host drive D:. (Mounting is not automatic as it was with host drive C:, because RAM disk D: does not exist when io.sys loads the DriveSpace driver, dblspace.bin or drvspace.bin.)

Edit c:\autoexec.bat so that it contains the following:


path=c:\windows;c:\windows\command;c:\windows\system
REM Create RAM disk
xmsdsk {desired size of RAM disk in kilobytes} d: /t /y
REM Copy CVF to RAM disk
attrib c:\drvspace.001 -s -h -r
copy c:\drvspace.001 d:\
attrib c:\drvspace.001 +s +h +r
attrib d:\drvspace.001 +s +h +r
REM Mount CVF using scandisk /mount
scandisk /mount d:\drvspace.001
REM E: is now compressed RAM disk
path=e:\windows;e:\windows\command;e:\windows\system
set temp=c:\temp
set tmp=c:\temp

After re-booting, Win9x should run on the compressed RAM disk! :o)

(On a networked PC, there is no need for a hard disk as the CVF can be copied from a server. Diskless Win9x using a compressed RAM disk works very well.)

The above method is an adaptation of one by Andre Moreira. http://www.dei.isep.ipp.pt/~andre/extern/nc98.htm

Regards,

Tony Brewer
tonybrewer@bigDELETEfoot.com

With some thought, I may be able to simplify it a little, but not by much. The obvious simplification would be to use the free-for-private-use xxcopy to copy drvspace.001 in a single step, saving all those attrib lines in autoexec.bat.

This shows a lot of promise. Memory’s so cheap right now that it’s feasible to get 384 megs, leave yourself with 64 or even 128 megs of working memory, and still have a decent-sized ramdisk. Windows 95 will install to as little as 17 MB, if you know the secrets. Windows 98 is considerably larger but it’s still possible to stuff Win98 and a couple of apps into a compressed 256 MB disk, and it’s super fast. Even with disk compression, access to a compressed ramdrive is nearly instant. I did get compressed ramdrives working inside Windows (I just couldn’t boot from them) and even on my Pentium-90 a compressed ramdisk was fast. So if you want maximum speed, this is the way. And I’m wondering what this would do for a laptop’s battery life…

I’m really eager to give this a test drive.

Update: The following doesn’t seem to work with the original Windows 95 or Windows 95A. This may explain the difficulty I had initially, because I was using the Aug. 24, 1995 release of Win95 because of its small size (I was using a P90 with 48 MB RAM at the time).

I’m going to try to test it with Win98 this afternoon. I’d rate the chances of it working with Win95B higher than with Win95A but not necessarily as high as with Win98.

Update 2: Indeed, it does work with Win98 (original, I haven’t tested 98SE yet) with the instructions as written. The only caveats: Be sure to double check c:\config.sys, c:\autoexec.bat, and c:\dblspace.ini every step of the way. Windows setup has a tendency to modify their contents without warning, so you can get complaints of missing files when it goes to look for them on a not-yet-existing ramdrive.

Also, Fat32 and DriveSpace are incompatible, so you have to do your initial build on a Fat16 drive.

And for maximum speed, be sure to defrag the compressed volume before booting it into RAM. Sure, ramdisks are invulnerable to the mechanical effects of fragmentation, but the data structures are fragmented too, which slows things down even when no mechanical parts are involved.

How fast is it? I tested it on a Pentium-200 with the Intel VX chipset with 160 MB RAM. I set up a 128-meg ramdisk with a compressed drive using 127 megs total. The system boots in a little over a minute. IE4.0 loads in literally a second. Word 97 loads in two. Not bad for a system that’s suddenly found itself with only 32 MB RAM to work with.

Obsolescence is obsolete.

Rare DOS disk utilities

Mailbag:

RAM disk; Your book; Mobos; Monitors; Net folders

I’ve been doing a bunch of work in DOS the past few days, and I’ve found some useful disk tools. A lot of people use the shareware WinImage or GRDUW to create images of floppy disks. That’s with good reason, seeing as floppies are so unreliable–this way, you’ve got a backup on a hard drive or CD-ROM drive, and it’s so much more convenient when you need a particular disk to just grab a blank, make a fresh copy from an image, and go do your thing. But I found some DOS utilities, some recent and others oldies but goodies, that give you the functionality of these shareware utilities but with the advantage of being free, smaller, faster, and in most cases running on a wider variety of operating systems–all good things. So they don’t have a nice clicky mousey interface… I don’t like using a mouse anyway. Maybe you’re like me, or maybe you like powerful utilities and don’t mind giving up the mouse to be able to use them.

So here goes.

Creating disk images. My favorite is  Diskwarez DF — of course I like this utility, seeing as it bears my initials. DF is a short and sweet utility for creating and writing disk images compatible with Rawrite and the Unix dd utility. Runs under DOS and under Windows 9x and NT in a command window. There are dozens of DOS disk imaging utilities out there, but this one has the advantage of being compatible with a very common cross-platform standard. Check out the Diskwarez site, as it’s got tons of info on disk programming, as well as some other utilities like free disk editors. Despite the name, it’s not a pirate site–Diskwarez software is distributed under a free license somewhat similar to the GPL.

If you prefer self-extracting images, you can use the similarly named DOSDF to create them.

Bigger, faster, better floppies. The other feature of GRDUW is to format high-capacity floppy disks and floppies that give faster access than disks formatted with Windows Explorer or the DOS format utility. Enter FDFORMAT . You can do that and plenty of other cool things with this utility. You can gain more usable space on a 1.44-meg floppy without resorting to weird disk formats just by reserving fewer root directory entries. For example, FDFORMAT A: /D:16 gives you the maximum available space on a 1.44-meg floppy by reserving just 16 root directory entries (if you’re storing large files you don’t need more than 16 anyway, probably).

For extra speed, use Sector Sliding: FDFORMAT A: /X:2 /Y:3 speeds up the disk by 50-100 percent by arranging the tracks in a more optimal order. Supposedly you can gain even more speed by playing around with the gap length, but the author says disks are less reliable when you do this. If you’re more interested in speed than in reliability, add the /G:32 switch to the command listed above.

And by default, the boot sector on disks formatted by FDFORMAT automatically try to boot to the hard drive rather than giving you the dreaded “Non-system disk or disk error” message. Why couldn’t Microsoft think of that?

And of course you can also format high-capacity disks. Use the /F168 option to format a 1.68-MB floppy, and the /F172 option to format a 1.72-meg floppy. These switches can be combined with the others as well. Keep in mind that extra-capacity disks aren’t bootable.

FDFORMAT’s downside is it won’t run from inside Windows NT or Windows 9x. The best thing to do with it is to format a disk with it on a PC booted into DOS (DOS mode from Windows 9x’s boot menu is sufficient), then take that disk and use the aforementioned DF or DOSDF utilities to make an image of that disk, then when you need to format a new high-speed disk or a new disk that won’t give you errors when you leave it in the drive, use the image.

Formatting bad disks. And finally, for those dreaded Track 0 Bad errors that render a disk unusable, there’s FR , which uses workarounds to try to make the disk usable again. Typically I get rid of floppies with bad sectors pretty quickly, but if it’s an emergency, this program might bail you out. I used to get around Track 0 errors by formatting the disk in my Amiga–for some reason the disk always worked after that–but seeing as I usually don’t have my Amiga set up, this is an alternative.

And wouldn’t you know it, as soon as I wrote that I found a better way. SmartFormat also does Track 0 workarounds, uses the date and time to create unique disk serial numbers (instead of Microsoft’s license-plate method), provides a fast format that’s up to 60% faster than Microsoft’s method, and can optionally format 1.72-meg disks. SmartFormat runs within Windows, usually.

Mailbag:

RAM disk; Your book; Mobos; Monitors; Net folders

02/12/2001

Mailbag:

Keyboards; Optimizing Windows

Sweet! In Optimizing Windows, I lamented that no one had made a hardware RAM disk. Leave it to the Aussies, someone did it. I found a reference to Platypus Technologies ( www.platypus.net ) on Storage Review’s forum. It’s pricey–a half-gig disk will run $1,500, while an 8-gig job runs into five figures–but you’ll never find anything faster. It’s a plug-in PCI card that uses SDRAM DIMMs. Whether it’ll take off-the-shelf DIMMs or just Platypus-manufactured DIMMs, I’m not sure.

I’d love to see this catch on and drive the price down. The size seems a bit small, but keep in mind that for, say, a Web server, speed is much more important than size, and a half gig will hold an awful lot of HTML. And there was a time when operating systems and a reasonable number of apps easily fit in half a gig, if you’re thinking workstations.

I’d say I think I’m in love, but that’s not true. This device is 100% Grade-A lust. Now the question becomes how do I convince Computer Shopper UK that they’ve really got to do an in-depth look at this killer device, and that I’m absolutely, positively the guy they have to have do it…?

One-button Linux shutdowns. Here’s a great idea.  A lot of people run headless Linux boxes for firewalls or routers or Web servers or other things. But that once or twice a year you need to shut the machine down–due to power failures, for instance–becomes a real pain without a keyboard or mouse. You have to telnet or ssh in, issue the command… Or keep a monitor and keyboard handy, which just wastes space most of the time.

Here’s a solution: a case-mounted pushbutton with a pair of LEDs. Push the button, the PC shuts down. It plugs into a serial port and needs a small daemon to monitor the serial line.

And it occurs to me that nothing stops you from using the PC’s reset switch and its power and HDD LEDs–or turbo LED if it has one–and with that slight modification, it would require no modification to the case. Just put connectors on the PCB for the switch and LEDs and mount it somewhere inside.

Also, I looked at the source code for the daemon, and it would be extremely easy to mofify this project to do any other task–just go to the runshutdown() function and change the system(“/sbin/shutdown -t2 -h now”); command to execute any other Unix command. The C source code is so simple, even a journalist like me can modify it.

If I were building another Linux-based Cable/DSL gateway, I’d probably pull that line and replace it with these two:

   system(“kill -9 $(pidof -x pumpd)”);
   system(“/etc/rc.d/init.d/network restart”);
  
That way, with the push of a button, the gateway could go grab a new IP address.

And if you have multiple serial ports, nothing stops you from building one of these switches for each port and modifying this daemon to run additional commands. A throwback to the Imsai and Altair days, to be sure.

Too bad you don’t see much of this kind of stuff anymore.

Samba. Speaking of Linux, that was one of the weekend’s projects. My church ran out of IP addresses, so I took an old P166, threw a pair of NICs in it, and set up IP masquerading on it (Mandrake 7.2 makes this so nice–just run DrakConf, run Internet Connection Sharing, answer its questions, and you’re in business), then I started assigning 192-net numbers to the PCs that didn’t have addresses. It worked great. Since I had a Linux box with an 8-gig drive just sitting there, I decided I also wanted to set it up as a server. So I tried to configure Samba as an NT domain controller and fell flat on my face. It showed up in Network Neighborhood, but I couldn’t authenticate against it no matter what I tried.

I decided yesterday I was being too ambitious. I reformatted my P120, installed Mandrake 7.2 on it, and configured Samba to just look like a plain old Win95 box. It worked great. They’re not used to having a big network at church, and they’re all on Win98 boxes anyway, so I think I’ll just configure Samba to do user-level authentication, create a few shares, and let it go at that. The primary convenience of the server is the AV booth; one of the staff puts together PowerPoint presentations for the service, which are then loaded on a pair of PCs up in the AV booth for projection on Sundays and Wednesdays. The server will allow them to edit in their office, then go to the AV booth without shuttling around Zip disks. Chances are the DCE, who also serves as the resident PC expert, will also use a share there to store device drivers and other downloaded stuff he finds himself using often. Other than that, the server probably won’t get a lot of work, so trying to create an NT domain with hardcore security probably isn’t a good investment of my time.

So I’ll probably just create an AV share, create a public share that’s read/write accessible to anyone, then I’ll share out home directories and show him how to create user accounts. That way if anyone else wants to use a network drive, it’s there, but not mandatory.

Mailbag:

Keyboards; Optimizing Windows

02/05/2001

Mailbag:

Windows 98 in a Ram Disk

Defeating Web ads. I’ve read enough talk of ads on the ‘net recently that I think it’s time I share a little secret. This is from an upcoming Shopper UK article, but seeing as it probably won’t hit the streets until May, why not talk about it now?

A lot of sites are putting policies in place to ban ad-blocking software. I think that’s a bit ridiculous. I didn’t used to have a problem with ads online. They were small and unobtrusive. Then people started using animation to get more out of the tiny space. I thought that was clever. Then the animations started speeding up immensely, and that was when I started getting annoyed. I don’t like movement on Web pages. Movement is inherently distracting. We naturally pay attention to movement, because way back when, movement meant lunch. Or it meant something thought we were lunch. So we instinctively give the moving priority over the static.

I don’t have a philosophical problem with advertising, but when you force me to look at blinky stuff while I’m trying to read text, it starts to bug me. Blinky stuff that’s also sexually suggestive really gets on my nerves. No wonder guys think about sex 72 times a day–it’s flashed in front of our faces constantly! So I normally block ads, using one of the many great ad-blocking programs out there.

But IE has a feature that makes ad-blocking less necessary. If it’s just the blinky stuff that bugs you, turn off GIF animation. Go to Tools, Internet Options, Advanced, then scroll down to Multimedia and clear the checkbox labeled Play Animations. That’ll tone down the GIF-based ads. Java and Javascript-based ads will still get through, but you can disable those there as well. Unfortunately there’s not much you can do about Flash, though if you right-click on some Flash ads, there’s an option that comes up called Play. Clear that checkmark, and the ad stops. It doesn’t always work but it does sometimes.

O’Reilly online. Frank McPherson noted the existance of O’Reilly books online.  Yes, they launched a subscription e-book service this summer. Authors are supposed to get unlimited access to the library (they never got around to sending me account information… big surprise), and we do get a very small royalty. Basically if someone subscribes to one of our e-books for a full year, we’ll get about the same amount as we would have if the subscriber had bought a paper copy. I know Optimizing Windows was available for a while as an e-book; one quarter its e-book sales actually outsold the paper copy by a pretty wide margin.

I really don’t expect this initiative to succeed long-term, but maybe I’ll be surprised.

Frank noted a conspicuous absence of Windows titles in the e-books selection. O’Reilly’s trying to de-emphasize their Windows books, and they may pull their Windows lines altogether due to slow sales. I talked to a marketing wizard I know about this. Books aren’t his thing. Food packaging, banks, and churches are–odd combination, I know, but this guy is one of those people who never meets expectations, but rather, exceeds them beyond anyone’s wildest dreams, so I listen to him. I took him a copy of Optimizing Windows one day and asked him if he had any idea why it didn’t sell. He gave it a really funny look, so I explained to him what the book’s about.

He said it sounded like an outstanding product. He said he had an aging PC at home and his kids were bugging him for a new one, but he’d rather wait another year. I told him that’s probably feasible–the machine’s only a couple of years old. He said there must be a million people in his boat, so why can’t you tell that this product is a solution to that problem by looking at the cover? I explained O’Reilly’s history as a publisher of Unix books and how they came to put animals on the cover. “So you’re telling me they’re selling this like a Unix book. But this isn’t a Unix book. Is your target audience Unix guys, or is it people like me? I wouldn’t buy this book because I have no way of knowing what’s in it. And Unix guys won’t either, because it’s not a Unix book. It just looks like one.”

I thought about that observation for a long, long time. Animals on the cover of Unix books works, partly because there’s such a dearth of good Unix books. O’Reilly could have come along when it was getting started and printed plain brown covers with the word “BIND” or “Sendmail” or “Perl” in block letters on the cover and spine and it would have sold. All you have to do to succeed in the Unix market is exist with a halfway readable and halfway correct product, and you’ll own it (that’s harder to do than it sounds). Plus, animals on the covers of Unix books appeal to the warped sense of humor of the Unix sysadmin.

But Windows is a different audience for the most part, and should be a different product line with a different approach. It’s consumer-driven. It’s pop. Sure, pop’s less sophisticated than AOR, but pop potentially makes you more money. “Your cover should have, I don’t know, two window washers cleaning a computer monitor.” Or the great new logo that Shopper UK came up with for my “Optimise Your PC” series for next month–what looks like a bottle of glass cleaner with the words “Maximum optimisation” sprawled on the label. Brilliant. It gives you the same “what the heck is this?” reaction that the animals on the cover of a Unix book give, but require less thought to figure out what it means. You see the glass cleaner, then suddenly it hits you: “Oh, this is how I clean up my PC!”

I told him about those great designs that Shopper UK comes up with. “Can’t you get one of those guys to design you a new cover for your book?” he asked me.

I told him that wouldn’t be the O’Reilly Way.

Mailbag:

Windows 98 in a Ram Disk

01/23/2001

Mailbag:

More Networking

What’s going on with memory prices? Every time I say they’re stable, they drop again. I’m not going to say anything about current prices, except they’re low. Face it: I remember five years ago, paying $48 for an 8-meg stick, and I felt like I was stealing it. Kingston memory for $6 a meg! Unbelievable!

I told Dan Bowman on Sunday that you can get a 128-meg PC133 Kingston module at Outpost.com for $59 with a $20 mail-in rebate. Then yesterday he sends me word that I can get a 128-meg PNY PC133 stick from globalcomputer.com for $49. No rebate hassles whatsoever, and plenty of stock. So $6/meg has become $.31/meg. Prices may stabilize there, or they may free-fall some more.

What happened? Overproduction. Millions of chips were produced for millions of computers that didn’t sell over Christmas, which is supposed to be the heaviest buying period of the year. Not a whole lot of upgrades were bought either. And now, with demand for Rambus increasing a little and DDR looming overhead like the Enola Gay, they’re stuck with a bunch of inventory that’s living on borrowed time. Gotta move it, because demand’s moving elsewhere. There’ll be demand for SDRAM for many years to come (just as there’s still some demand for EDO DRAM today), but its days as the memory everybody wants are about to come to a close.

So as long as you have some use for SDRAM, this is a great time to buy. But keep in mind that the stuff you buy now probably won’t move with you to your next PC. A current PC with 384 MB of PC133 SDRAM will be useful for many years to come, true, but next year when you buy a motherboard that takes DDR or Rambus, you’ll have to buy new memory again, so it makes absolutely no sense to hoard this stuff.

So should you buy? Windows 9x sees diminishing returns beyond 128 MB of RAM, unless you’re playing with RAM disks. Windows 2000 really likes 256 MB of RAM, but for the things most people do, there’s little point in going past that. Of all the OSs I use right now, Linux does the best job of finding a use for such a large amount of memory. So if you’re below any of those thresholds, sure, buy. But if you’re there already, you’re better off banking that money until the time comes for your next major upgrade.

But if you are buying, let me reiterate: Get the good stuff. I had a conversation with someone on a message board today. He asked why, if 95% of all memory chips are fine, it makes sense to pay more for a brand name. I pointed out to him that with 8-16 chips per module, a 95% rate means you have a 25-50 percent chance of a bad module, since it just takes one bad cell in one chip to make the module unreliable. It’s much better to get A-grade chips, which have a .1% defect rate, and buy from a name brand vendor, who will in all likelihood do their own testing and lower the defect rate another order of magnitude. To me, knowing that I won’t have problems attributable to bad memory is definitely worth the few bucks. Even the bottom-feeders aren’t beating that Kingston price by much, and the shipping will make the cheap, nearly worthless memory cost more than the good stuff.

Tracking down memory problems is a real pain, unless you’ve got a professional-quality memory tester. I do. Still, verifying a memory problem and then isolating it to a single stick can take hours. I have all the facilities necessary to let me get away with buying the cheap stuff and I won’t do it. That should tell you something. Buying generic memory isn’t like buying generic socks or generic spaghetti. In memory, brand is a lot more than status.

Partition Magic. I tried unsuccessfully last night to track down a copy of Partition Magic 6 so I can revise the article on multi-booting Windows 98 and Windows Me that won’t go in the March issue of Computer Shopper UK. It’ll be in the April issue instead. I also had to deal with some personal issues. It’s not like my whole world’s upside down–it’s not–but a pretty important part of it is right now.

Mailbag:

More Networking

12/24/2000

~Mail follows today’s post~

Last night, I sent myself hurtling 120 miles at 75 MPH to Columbia, Mo. My mom lives there, and my alma mater, the University of Missouri, is also there. Today, after morning services, I’m headed another 120 miles to Kansas City, where most of my mom’s family lives. I don’t get back there very often, so I’m looking forward to it.

I’ve got some stuff to write, but I’ll be late for services if I do, so it’ll have to wait.
~~~~~~~~~~
From: “Lawrence Kim” <lykim@nospam.telusplanet.net>
Subject: A loyal reader w/a technical question

Dear Dave: I have a few questions, well, maybe just one, related to your book.  When you do a clean install of W98SE on a partitioned drive, if you wipe C: (where W98 is), how do you get the other programs on the other drives to run again?  Especially if you’ve wiped all the .dll files and other important stuff?  Secondly, what’s a good and fast way not to have to reload all the programs again if you wipe & reinstall W98?  If I used Drive Image 4.0 or a tool like that (or maybe even Norton Ghost), how do you copy images of your drive back onto your computer?  Lastly, what’s the best way to optimize your ADSL/highspeed Internet connection?  I’ve been using this program called NetSuperSonic which is supposed to adjust certain registry settings in Windows to optimize it for broadband use.  It seems to work pretty good, but I was wondering if you would have some other suggestions.  That’s pretty much everything.  Oh yeah, are you going to come out with a new, updated book?  I don’t know, just thought that I would ask. That’s for writing the book; it’s been extremely helpful.

Cheers.

~~~~~

I think that’s actually more than one question, but that’s ok of course.

The idea of a clean install is to start over, which of course means reinstalling everything. Reinstalling everything takes time, of course, but the benefit is that you’re rid of all those old, no-longer-in-use DLLs and other leftovers that hang around after you uninstall programs. You’ve also got fresh copies of everything and a brand-new registry, which is good because registries get corrupt and so can DLLs and even programs. The result is a faster, more stable system.

But if you’ve lost the installation files for some of your programs, you’ve got a problem. You can use CleanSweep or Uninstaller to package up the program, DLLs, and its registry entries for re-installation, but be sure to test the package on another PC before you wipe, because these don’t always work.

Ghost or Drive Image aren’t a clean install per se, because they preserve everything. Generally the way I save and restore images is to a network drive, or in the case of a standalone PC, to an extra partition or, better yet, a second hard drive. You can also span an image to multiple Zip, Jaz, or Orb disks but that’s slower and more cumbersome. These programs are absolutely invaluable for disaster recovery, but as optimization tools in their own right, their benefit is very limited.

If NetSupersonic checks your MTU and adjusts it properly (many of those utilities don’t), that’s a great start. You can measure your speed by going to http://www.pcpitstop.com/internetcenter.asp, and they have some suggestions on the site for fixing sub-optimal perfomance. Ad-blocking software will speed you up as much as anything else you can do, and FastNet99 (mentioned in the book) is also useful by reducing the number of DNS lookups you have to do (I accomplished the same thing by connecting my DSL modem to a Linux box running its own DNS, which I then used to share my DSL out to my Windows PCs).

As for an updated book, I imagine not doing one would probably kill me. But publishers are understandably hesitant to do one right now, since no one seems to know what Microsoft will do next. Is Windows Me really the end? Is Windows 2000’s successor really going to be suitable for home use? When will Microsoft manage to deliver another OS? No publisher wants to invest tens of thousands of dollars in producing a book only to find out they guessed wrong. Once there are answers to those questions, it’ll be time to write a new book. In the meantime, I’m writing magazine articles (there’s very little new in the article at www.computershopper.co.uk this month; there are a couple of new tricks in the article for February, and the article for March is almost entirely new stuff) and posting new tricks to my own site as I find them or think of them. So the answer to your question is, “probably,” but I can’t give you any kind of time frame.

Hopefully that answers your questions. If not, feel free to write back.

~~~~~~~~~~

From: “Lawrence Kim” <lykim@nospam.telusplanet.net>
Subject: Drive Image Pt. 2
However, IF I were to reinstall everything, erase my game drive, utility drive, and C: drive, reinstall W98SE, all my programs, and THEN take an image of my C drive after my brand new clean install, theoretically I shouldn’t have to ever reinstall everything again (unless I add new programs or whatnot) because the image I have taken of my C drive will be a nice, squeaky clean one, right?

How do you spell “segway?” as in, linking two opposite ideas together?

Finally, do you think it’s worth picking up Norton Systemworks 2001 when I have 2000?

Thanx again.
~~~~~

You are correct about imaging a fresh install. That’s the way we handle systems at work (my job would be impossible otherwise, as many systems and as few techs as we have). It’s nice to be able to restore to pristine condition in 15 minutes instead of 6 hours.

The word segue is pronounced “Segway.” I think that’s the word you’re looking for.

The biggest new feature of Systemworks 2001 is Windows 2000 and Windows Me compatibility. If neither of those matter to you, stick with what you have.

~~~~~~~~~~

From: “John Doucette” <jdoucett@nospam.gienow.com>
Subject: windows memory use

Hi Dave

We have several high end Pentiums at work running Windows 98. These PC’s have 512 MB of Ram and run what I am told is a very resource intensive C+ program. Now I have not myself touched these machines yet and likely won’t as what is not apparently broken they will not likely let me fix (some might say break).

Now no work was done to the best of my knowledge to try and tune these PC’s. They merely installed Ram and ran the program till performance seemed to hit the ceiling.

Now I have always thought that Windows 9x would not perform any better with more than 128 MB of Ram. I think that if given the opportunity I could down grade these PC’s to 128 MB of Ram, tune them and get the same performance.
I would then have Ram to use were it could be of value.

I am curious with all your Windows tuning experience and some programming knowledge if I am pissing in the wind, or if you think that the PC’s would likely run the C+ program well with less Ram.

John

~~~~~

If the program really needs that kind of memory, they have no business running it on 98. They should be running on NT. Win98 definitely gives diminishing returns after 128MB; you see some improvement but not much. I don’t remember what the maximum memory for 9x is; it may be 512 or it may be 768, but you’ll get to a point where if you don’t specify a limit in the vcache section of system.ini, Windows won’t boot because the disk cache can’t handle that much memory and will crash. That may be the ceiling they hit.

I seriously doubt that program runs demonstrably better in 512MB than it would in 128 with some optimization. I’d set some parameters on the disk cache, optimize the hard disk(s), cut everything possible out of startup, kill anything cutesie the PCs are running, and add the line ConservativeSwapFileUsage=1 to the [386Enh] section of system.ini. I’d also use 98lite’s IEradicator to pull IE if they don’t need a Web browser–that increases system performance across the board by a good 15-30 percent. If the program’s really a resource hog, I could justify 256, but really I’ve yet to see a Win9x PC that truly benefitted from having more than 96 MB of RAM. It just makes more sense to by a 128MB stick than a 64 and a 32.

I’d say take one of the PCs, make a Ghost image of it so you can bring it back to the original, then pull 384 megs and optimize the sucker. I’m betting it’d make a huge difference. (And I’d love to hear the results.)

~~~~~~~~~~

From: Edwards, Bruce
Subject: Internet Connection Sharing

Good morning Dave:

I posted this over on the hardwareguys.com forum about internet conneciton sharing, where you kindly gave me a suggestion that helped a lot.  🙂

———————–

Hi Dave and other interested persons/Linux gurus:

Your suggestion about the gateway was part of what I needed, thank you.  In addition to not having the gateway defined on my internal Windows 98 client, I also needed to put the DNS server IP addresses on the clients in the TCP/IP configuration.  I was assuming it would get the DNS info from the Sharethe net gateway, where the DNS server is also defined.  Silly me!  There looks like there is both good news and bad news.  First the good news:

Once I was able to get it working, on the same hardware as the Wingate solution, my aDSL performance doubled!  

From the DSLReport.com scan I received this:
TCP port 53 is OPEN

GRC.com reported all ports (scanned for) were closed.

With port 53 open, I will be running the Wingate solution until I get some feedback or more info about what to do.  There is probably some bad vulnerability somewhere.  I still have not looked through the SharetheNet information I have enough to know if I can turn that port off easily (easily for a Linux newbie that is).  I seem to remember that there probably is an init file with all the services defined which would probably be easy to turn this port off.  Since this whole thing runs from a floppy, the files are actually active on a ram disk.

Here is some SharetheNet Linux configuration information specific to my current gatewayPC, in case any of you Linux gurus out there would be willing to point out what I need to do:

http://bruceedwards.com/journal/001218a.htm#connect

I’ve probably put enough info there to make hackers very happy.  Oh well, I won’t be running SharetheNet in that configuration and will not run it at all unless I can determine that it is safe.  Any comments appreciated.

Thank you,

Bruce  🙂

~~~~~

Port 53 is DNS. I wouldn’t be too worried about it. The critical ports are blocked, and even if someone does somehow manage to get into your system, since the configuration is on a write-protected floppy all you have to do is reboot. And they won’t be able to do much on your internal network since you’re running Windows, and your Linux box doesn’t have Samba installed.
 
That information you posted is mostly hardware configuration data; I don’t think there’s anything useful there unless some exploit happens to be discovered for a particular driver (possible but not worth worrying about).
 
I thought I knew once how to block specific ports, but that’ll have to wait until tonight for me to dig.

~~~~~~~~~~

From: “J H RICKETSON” <culam@nospam.sonic.net>
Subject: FDISK?

Dave –

Where did you get an FDISK that asks you if you want to do big partitions?  Mine (DOS 6.22) thinks an 8+ gig disk is plenty big enough for anyone and refuses to even consider anything larger – and a ~2 gig partition is all anyone will ever need. I need a more user-tolerant FDISK!

Regards,

JHR
~~~~~

Windows 95B, Windows 98, and Windows Me’s FDISKs all handle larger than 8 GB drives. Partition size is a function of filesystem. FAT16 is limited to 2 gigs, period. FAT32 can be several terabytes.

~~~~~~~~~~

From: “Lawrence Kim” <lykim@nospam.telusplanet.net>
Subject: Recycle Bins and Boxers

Is there any way that one can make one recycle bin in only one partitioned drive, and have all the junk from all the other drives go to that one recycle bin instead of having recycle bins for each and every drive?  And what do you think about one of your ministers of the House of Common wanting to pass a law that would indict a boxer if he inflicts serious injury on another boxer, or kills him?  I personally think that should be out of the hands of lawmakers, as both boxers realize the risk that they are taking when stepping into the ring.  The only exception that I can think of is if a boxer continues to pummel away at his opponent after the bell has rung, and he’s straddling his opponent’s waist, hammering away at his face.  Okay, that can be prosecuted, but not if everything else is completely fair.  Anyway, enough of that.  Thanx again.

~~~~~

I wish it were possible to consolidate the recycle bins, but I don’t believe it is. I’ve never seen any trick to do that. The Mac does that, so I guess I could say get a Mac, but that feature isn’t worth the trouble and expense of switching platforms.

I’m not British, so I haven’t heard of that proposed law, but that’s ridiculous. When you’re playing sports, you’re at constant risk of injury. It’s a risk you take. And with what professional athletes make (at least in the States), that’s fair. Most professional athletes in the States should be set for life after just a five-year career, if they handle their money wisely (most don’t).

Baseball’s considered one of the safer sports, but there’s been one instance of a player killed when he was hit by a pitch (Carl Mays, sometime in the 1920s, I think). There’ve been countless career-ending injuries due to being hit by a pitch or a line drive. It’s up to the officials of the sport to ensure that players are sportsmanlike and don’t take cheap shots, not the government.

Then again, the United States has a much more laissez-faire government than most countries, and I’ve always tended to flutter between the libertarian and conservative points of view so I’m even more laissez-faire than the average U.S. lawmaker.

12/01/2000

~Mail follows today’s post~

Darkening the site for World AIDS Day? This site’s always pretty dark. OK, my excuse: I didn’t know. I’m a bit out of touch. My apologies. So I’ll comply with the alternative suggestion: I’ll tell a story.

I’ve never been close to anyone living with AIDS. But I know someone who has. I’ll tell his story because his story is one of the greatest stories of hope I know.

I moved to a small town in 1983. We weren’t particularly close to either set of next-door neighbors, but we were very close to the family across the street. They co-owned one of the most popular restaurants in town, and had three kids fairly close to my and my sister’s ages. Di became very close with their daughter; I was very close to their two sons.

The kids had an uncle named Mark. Mark was, as I recall, about 22 at the time. He’d gone off to seminary but decided to come back, worked as an assistant manager at the restaurant (owned by his brother and brother-in-law), and dabbled in plants and antiques. There are a very few truly, truly nice people in this world, and Mark was one of them. At the time, Mark was probably the nicest guy I’d ever met. Seventeen years later, I still have to rank him somewhere in the top five.

He was also one of the least fortunate. That summer, his pickup was stolen and never recovered. There was a fire at the carriage house he was living in. Then, the unthinkable happened. As the saying goes, the good die young.

Mark was having problems with headaches. Finally, he went to see a doctor about it. The doctor came back with the worst possible news. Mark, you’re terminal. You have cancer. There’s very little we can do. You have about six months to live.

Mark, being the class act that he was, didn’t tell his family right away. He didn’t want to distress them. He did tell his girlfriend. She left him. Mark never blamed her; she just couldn’t handle watching him die and he totally understood. Sensing that the end was near, Mark made his own funeral arrangements. He paid for everything, picked out everything, including his own coffin, and had everything taken care of. He planned to tell his family, then hand them an envelope and say, “Everything’s taken care of. All that’s left to do is wait.”

But something happened when he picked out that coffin. Something arose inside him. A voice said, “There is no way in hell they’re going to put me in that box.”

Mark determined to spend the rest of his life fighting with every ounce of his considerable resources. Fight he did. He underwent aggressive chemotherapy and radiation. One of the best-known cancer treatment centers in the world was in St. Louis, about an hour away, so he took advantage of it. His hair started falling out, so he shaved his head. In this conservative small town, his shaven head brought him considerable ridicule. And in this place, which was still small enough that everybody knew of everybody (it wasn’t quite small enough to know everybody personally), whenever he ventured out of his house, he got weird looks, like he was a ghost. Aren’t you dead yet?, he imagined them saying.

It became too much for Mark to bear, and things were getting worse, so he moved to St. Louis to be closer to his doctors and to lose himself in a crowd. His six months was up, and he was still alive.

At some point, Mark met an American Indian who was also dying of cancer. A very old and wise man, he took Mark under his wing. “I’m very old and I’ve lived a full life,” he told him. “I’ve outlived my family. I have no one left. But you… You’re too young for this. These beads have been in my family for generations. There’s no one for me to give them to. Take them. And live.”

Mark dismissed the beads as superstition, but didn’t underestimate the power of the mind. He took the beads and wore them. They reminded him that he was fighting the battle of his life.

In 1986, Mark went into remission. He credited his outstanding medical treatment, his determination to live, and his faith in God with saving his life. Grateful to his doctors, his hospital, and God that he’d lived far longer than he was supposed to, he wanted to give something back. He wanted to help others who were dying, to give them hope. There weren’t many terminal cancer patients his age. But there were a number of people his age who were dying of a frightening, still little-known disease known as AIDS.

Mark wasn’t afraid of AIDS or of the AIDS patients. He was patient with them, but firm. Giving up gets you nowhere. That was Mark’s message.

Mark’s volunteer work continued for a number of years. When I last saw him and spoke with him in 1994, he had stopped, but he knew he would go back. “I just need to spend some time in the land of the living,” he told me. “I’ll know when it’s time to go back.” Mark told me he would never live to be an old man–his body was that of a man nearly twice his age and he looked older than his 33 years–but he was still grateful. He and his doctors had traded life expectancy for ten years (at the time) he wasn’t supposed to have.

Mark and I lost contact soon after that. But I’ll never forget his message. I’m sure that’s true of many (and there are many) of the people Mark touched.

Mark didn’t overcome AIDS. And while there’s still no cure, Mark’s attitude will go a long way towards helping those who are living with AIDS to gain years that they, too, weren’t supposed to have.

Thanks to a glitch Wednesday, I was in the Top 100 at editthispage.com. Top 100 sites generally have at least 25,000 hits to their name; this one has about 10,000 so it’s not quite halfway there. I find when I concentrate too much on stats I concentrate not enough on content and everything goes downhill, but 10,000 hits in 6 weeks is pretty good. Thanks to all of you who read regularly. I really do appreciate it.

For those who aren’t Mac people… Let’s revisit yesterday for a minute. Yes, a 45-second boot time on a Mac is very good. Anything under a minute and a half is considered good. For comparison, I took the fastest Mac I have available that’s capable of booting from a RAM disk (G3s and newer cannot), installed a lean, mean OS to it, defragged it and ran DiskWarrior (defragging doesn’t make the ramdisk physically any faster but it helps the filesystem work more efficiently) and rebooted a few times. I timed it at 30 seconds.

That’s a 133 MHz machine with EDO RAM, but that makes me think that you’ll never get a G4 to boot in less than 30 seconds, even with a high-end SCSI card and a 15K RPM hard drive. Slow RAM is still several orders of magnitude faster than any hard disk; that 30 second boot time must be due to the limitations of HFS (Hierarchial File System).

And Di’s two cents. Hey, she’s my sister, and she helps out with the site, so when she wants to say something, she gets to say it. In yesterday’s post, I lamented about focusing on what works right, not what’s wrong. Her comment:

[That’s] the whole basis for occupational therapy, osteopathy, and psychology. It’s all related to the holistic approach.

Hmm. My dad was an osteopath (an osteopath is a medical doctor, but with a slightly different underlying philosophy, but a D.O. can do everything an M.D. does) as were both of his parents. I was never close to his parents so I can’t speak for them, but Dad lived and breathed osteopathy. And my sister has a psychology degree and is working on an OT degree. So no wonder I agreed with him!

I’ve got more, but I’m out of time. I’ll be back tomorrow with more–I’ve been writing long this week anyway.

~~~~~~~~~~

From: Ab
Subject: That virtual memory thingy.


Hi Dave
 
I’ve just read your article in Computer Shopper and came a bit unstuck when I got to specifying my own virtual memory settings.  I’ve got 64Mb ram, so, as you suggested I want to give myself a 64Mb swapfile.  I’m just wondering how exactly you enter this in the Min and Max boxes, as I’m fairly new to all this setting changing business.  I tried entering it as just ’64’ in both boxes, but this appears to be wrong, ‘cos  my games starting complaining that my swap file was too small, so I thought I might as well try emailing you to make sure I get it right.
 
I found the rest of the article to be really informative – keep up the good work.
 
I’d be really grateful if you’d mail me back about my problem.
 
Thanx alot
 
Ab
(England)
~~~~~

I’ve never seen a game complain that 64 megs of physical RAM plus 64 megs virtual isn’t enough, but hey, if it says it’s not enough, then it’s not enough. Sounds like you got it right, and for your combination of hardware and software, I’m wrong. My apologies on that.
 
Safe bet is to go 128 instead of 64–it’s overkill, but in Windows 95/98 and Windows Me little too much is better than not enough. If you’ve got really obnoxious games, it may take 192 to appease them, but if they’re really using that much virtual memory, my guess is they’re not running very well.
 
I’m glad you liked the rest of the article. There’ll be another in the Feburary issue, and another in March.
 
Let me know if anything else comes up. I post all the mail I get about my articles and book on my Web site so it can help other people if something I write confuses them–that’s inevitable in this business.
 
Thanks!