Vector + Tensor Processing

Mostly Windows - PC Stuff

HP-Recovery Disks and Window-7 (problems)

caveat: this problem may also apply to recovery
disks from other vendors

I purchased two PCs in 2010 (one for my wife and one for myself). They were both
HP-e9270f and sported Window-7 running on the following hardware: Intel Core-i7
quad CPU, 8-GB memory, 1-TB hard disk, Blu-ray player, RW-DVD and Radeon
HD4650 Graphics Card. These machines are fantastic AND are never turned
off since they work on distributed science
projects (folding-at-home and BOINC) when not used by us. Since we use these machines
a bit harder than most families I suppose a few problems were to be expected.

In the May of 2012, Stanford University dropped Radeon HD-4000 series cards
from folding-at-home which prompted me to upgrade the graphics cards in both
machines to Radeon HD-6570. I sold the HD-4650 series cards
on eBay. (this last fact will be important shortly)

In July of 2012, one of my HP machines began sending me
S.M.A.R.T. alerts indicating
that the hard drive would fail soon. (you have got to love new technology)

After a week of this I ordered a replacement drive from a local retailer
but a 10-day crisis at work prevented me from moving my stuff to the new drive.

In August of 2012, I finally got around attempting a full backup of the
problem drive but the drive became really slow then died during the procedure.
(would hang the system on reboot; the BIOS could see the drive, but Windows
was unable to load a driver)

Next, I attempted to use the HP Recovery Discs to build
a bootable system drive which seemed to work until the HP Setup Phase
after the first reboot. Why? The system could not find a device driver (I am
assuming it couldn't find a driver for the new Radeon HD-6570) and so wanted
to reboot. Complying with this request results in the same problem (infinite
loop).Comments:

like Windows installs from Microsoft, you would have thought HP would
have offered a point where the customer can install missing or third party
drivers.

clearly the new video card was working; the HP Recovery should have
allowed the system to come up limping (or at least offered me the option
of allowing it)

At this point I thought the HP Recovery Disks burned by
the customer might not be the same as manufactured disks from HP and so attempted
to buy some from the HP support site. However, this plan was thwarted when the
HP site told be there were none available (perhaps they are getting ready to
roll out Windows-8)

So now I needed a Microsoft installation disk and was considering doing
a torrent download (many times torrent software is infected) when I learned
that Microsoft has posted installation images online just for people like me
in this kind of jam. The best way to find these images is to locate the Microsoft
product code on the case (mine was X15-53758 for
Windows-7 Home Premium 64-bit) then drop the product code into
Google. Caveat:X15-53758
is for Windows-7 but I was allowed to install
X17-58997 which is Windows-7 with SP1.

Okay so now I've got a bootable hard drive so what to do about the sick/broken
unit which contains recent data which never made it into the most recent incremental
backup?

When I booted the system from the new drive with the sick/broken drive
attached (as a secondary drive in the BIOS), the system never comes up.
The Windows colored logo appears then at least 5-minutes pass with the system
trying to do something but never succeeding or failing

So I booted the system with only on the good drive attached then connected
the sick drive after Windows-7 was fully operational. At this point you
would expect to see Windows-7 load the device driver for the sick drive
but this never happens. Additional prodding from tools COMPUTER>MANAGE>DEVICE
MANAGER and COMPUTER>MANAGE>STORAGE>DISK MANAGEMENT
did not help at all.

Many technicians are not aware of the fact that cooling
a flaky drive will save the day about 50% of the time
so I placed the drive in my refrigerator over night
(not in the freezer)

The next morning I connected the chilled drive to my running system.
The driver loaded and the volume mounted automatically!

I started copying files from the bad drive but after ten minutes you
could see the transfer rate begin to drop off. Placing the running drive
between two bags of frozen vegetables caused the transfer rate to speed
up until my copying was completed. Yippee!

Fixing problems in Windows-Vista

I have no idea why
everyone seems to hate Microsoft's Windows-Vista. The major complaint
seems to be "Vista is a lot slower than Windows-XP" but
remember that the first release of Windows-XP seemed slow (compared to Windows-2000)
and wasn't acceptable to most users until XP-SP1 (Service Pack 1). While it
is true that Vista is now at SP2 and we still haven't see speed ups like XP-SP1,
Windows-Vista is not a lost cause.

Here are some things that are wrong (IMHO) with Vista

Minimum hardware requirements were set too low (probably to tempt XP customers
to purchase an upgrade).

512 megabytes (MB) of system memoryNote On
system configurations that use system memory as graphics memory, at
least 448 MB of system memory must be available to the operating system
after some memory is allocated for graphics.

Windows Aero-capable graphics cardNote This includes
a DirectX 9-class graphics card that supports the following:

A WDDM driver

Pixel Shader 2.0 in hardware

32 bits per pixel

128 MB of graphics memory (minimum)

40-GB hard disk that has 15 GB of free hard disk space (the 15GB
of free space provides room for temporary file storage during the install
or upgrade.)

Problems with Microsoft's spec:

Processor clock speeds are virtually meaningless:

Due to differences in processor architecture (10-12 stage pipeline
in AMD chips vs. 30-31 stages in Pentium-4), AMD chips have always been
able to do more with slower clocks. Long pipeline chips from Intel always
did better when running static benchmarks but this is not the environment
you find in a real world OS were processes are interrupting each other.
(BTW, Intel is quietly reverted to shorter pipelines starting with Core
and Core2 processors)

Here is a sampling of
PC MARK 2005 - CPU diagnostics published in 2008 by Tom's Hardware
where I only searched for the phrase "3200" in the clocking
spec:

Chip

Clock

Benchmark

Intel Pentium-4 640

3.2 GHz

4037

Intel Pentium D 840

3.2 GHz

5300

AMD Athlon 64 X2 6400+

3.2 GHz

6576

Intel Core 2 Extreme QX9770

3.2 GHz

10310

In this sampling of
PC MARK 2005 - CPU diagnostics published in 2006 by Tom's Hardware,
I located two neighboring processors with ridiculously different clock
speeds but similar benchmark results:

Chip

Clock

Benchmark

AMD Athlon 64 FX-70

2600 MHz

6598

Intel Pentium EE 965

3733 MHz

6341

Why didn't Microsoft ever mention memory transfer rates? There are
huge differences between DDR and DDR2 memory chips. It seems to me that
Windows-XP is tuned in such a way as to be okay with DDR but Windows-Vista
seems to be more chatty with memory so would really require DDR2.

Microsoft seems to be relying upon the hardware boost provided by good
graphics cards, but in the real world, I have found that only techies and
gamers ever buy them. So if you don't have a good graphics card then
you will need more hardware horsepower.

While the minimum hardware spec will allow Vista to boot, you will have
problems running apps like Windows Media Player, Microsoft Office, or Personal
Oracle.

My Recommendations:

Don't bother with Vista unless your processor has at least two cores.

Any dual core chip from AMD should be OK.

Any Core2 chip from Intel should be OK.

Only the extreme editions of Intel's Pentium-D CPU (which was
released before Core and Core2) are worth taking a chance with Windows-Vista

Windows-Vista systems need at least 1 GB of DDR2 memory but 2 GB is
better. If your system only has DDR memory then it is a better idea to stick
with Windows-XP.

You need at least 100 GB of hard disk space just to make the system
useable. Remember that a hard drive is not only required for Windows binaries
and your data storage, the OS requires a big chunk too for other stuff (pagefile.sys,
hiberfil.sys, rollback database, etc.)

A good external graphics card can be counted upon to unload nitty-natty
tasks from your CPU (embedded graphics chip sets usually do not have their
own memory or can't do 3-d acceleration)

Vista screens have been hijacked by artsy marketing people at Microsoft
to make Vista look different from XP (probably to justify charging triple-digit
dollars to upgrade to something that is only 10% changed). There is way too
much screen animation and other crap stealing resources from your system. Click
vista-fix-1 for steps to change this.

Many logically located Windows-XP panels have been moved to illogically
located positions in Windows-Vista. For example, it is almost impossible to
find the panel with your Ethernet network adapter settings. Why was "Add
Remove Programs" in XP changed to "Programs and Features" in
Vista? These changes are OK for techies but the non-technical and geriatric
members of my family are totally confused by the Vista changes (so they call
me to be their tech support guy for every nitty-natty thing).

Vista takes too much time to boot-up because too many
unnecessary services are enabled. Click vista-fix-2
for steps to change this.

click the Notification Area tab then check all System
icons but uncheck Hide inactive icons (then click the apply button)

click the Toolbars tab then unclick all check boxes
except for Quick launch and Windows Media Player (then click the Apply button)

now click OK and close this stuff

Computer and Network icons should now be found on the desktop.

right click on Computer then select Properties.

Now click on Advanced system settings then click on
Settings button found in the Performance panel (top third).

Now click on the radio-button located Adjust for best performance
then click the Apply button.

Now click the OK buttons closing all this stuff.

Right-click anywhere on the desktop background the click on Personalize.

Now click on Window Color and Appearance. Make sure
your color scheme is either Windows Standard or
Windows Classic (looks like Windows NT 4.0). Never use
Windows Aero unless certain Microsoft apps request it. If you previously
had a black background color like me then you've probably just messed
it up. Click on the Advanced button to change it to whatever
you wish.

Fix Attempt #2 (make Vista boot faster by tweaking with
msconfig)

Caveat: This paragraph is for experts only.

Start -> Settings -> Control Panel -> Administrative Tools
-> ServicesLocate the entry named Server then right
click on it and select PropertiesNow change Startup
Type to either Delayed Start or Manual

Note: Server was previously known as
LanManager which will never be used by most non-technical users

...and
anything else you think shouldn't be there. Check each one with Google making
sure you don't disable anything related to your anti-virus software. Some
stuff might have been installed by other apps. For example, roxmediad89 is sometimes
installed by Blackberry Desktop Manager so be careful. Click
http://www.asktheadmin.com/2008/01/my-vista-machine-is-slow-what-can-i-do.html
if you need more help before proceeding.

Removing some Microsoft servicesStart -> Run -> msconfig ->
services tab -> uncheck Hide Microsoft Services -> uncheck
these services if they exist:SuperPrefetch, ReadyBoost, Print Spooler (if
you are like me and don't own any printers), Windows Firewall (if you were
not using it anyway; I use a LinkSys firewall since a hardware solution is always
better than software), Windows Defender (if you were not using it anyway; I
use "CA Security Center")

These settings are used to reduce
the number of cores and/or memory used when booting. When the checkboxes are
unchecked, your system will use the maximum number of processors and memory
available. Click here for more information:

Bad Capacitors on Dell OptiPlex GX-270

The other day (2012-11-14) I decided to take a look at a bunch of bad PC's stacked
up in our equipment room. Three of them were Dell model GX-270 all sporting Pentium4
CPUs which means I should have sent them to our e-waste group, but I was curious.
All three machines sported 3 aluminum electrolytic capacitors with very slight bulges
on their top end (they are supposed to be perfectly flat; the little "X"
is a strain relief to prevent a defective capacitor from exploding). All three boards
were manufactured in China by FoxConn and all the questionable caps are black plastic
with gold lettering manufactured by Nichicon.

the first unit appeared to only have three bad caps.

These were physically located on the middle of the motherboard and rated
1500uF @6.3v

I replaced them (these are multilayer printed circuit
boards so don't try this unless you have a lot of soldering skills along
with the right tools; I've been doing this for 40
years so I took a shot) and the unit booted right up. Yippee!

the second unit also appeared (on first inspection) to only have three
bad caps.

These were physically located on the middle of the motherboard and rated
1500uF @6.3v

I replaced them and the unit POSTed okay (no beep codes; four green
LEDs visible on the back) but the video port would not initialized. Closer
inspection of the caps behind the CPU (nearest the video chip) showed one
cap (I do not yet know the value) with a very tiny
bulge.

At this point a grabbed a very old PCI (not PCIe) ATI video card and
plug it into the top of the card riser. I was able to boot Windows-XP in
VGA-safe mode, disable the video driver for the on-board Intel graphics
chip, then reboot and come up on the ATI graphics card. (I really didn't
want to change any more caps)

the third unit appeared to have six-or-seven bad caps.

I started off replacing the same three I had some luck with on the previous
two PCs. These were physically located on the middle of the motherboard
and rated 1500uF @6.3v

I replaced them and the unit POSTed okay (no beep codes; four green
LEDs visible on the back) but the system craps out within 5 seconds of seeing
the booting windows-xp logo.

Surprisingly, if you drop into BIOS setup mode, the system will run
all day without crapping out

Now I should point out that some of the eight caps all lined up under
the edge of the CPU are slightly brown on the top surface
(looks like rust but is probably burned electrolyte)

When I find some time, I will attempt to replace the whole row of dodgy-looking
caps along the CPU edge but for now, this unit will go back to our junk
pile :-)

Scams

2000 Hardware Scam (modems)

The previous 1995-2002 scam:

Before DSL and cable-modems were popular, most people connected to the internet
via a 56K (V.90 compatible) analog modem connected
to a phone line. These modems were available in four basic configurations:

El-cheapo PCI models were truly evil because they did not contain any DSP
hardware. In order for them to do their jobs, they robbed resources from your
Pentium processor by tapping into the SIMD (MMX + SSE) extensions. The other
three models didn't have fast parallel access to the CPU so required their
own DSP chips.

So the bottom line was that "people in the know" had to resort
to older ISA internal modems (if you had an available slot) or USB-based external
modems.

2008 Hardware Scam (wireless NICs)

The current 2005-2008 scam:

Have you ever wondered why some PCI-based wireless cards (a.k.a. wireless
RF modems) can be sold for $19.00
while USB-based wireless adapters like WUSB11B from LinkSys cost twice as much?
Same scam as the analog modems described above. Some PCI-based cards only contain
2 small chips (small = 1.5 x 1.5 cm : large = 2.7 x 2.0 cm) and no onboard DSP.
To get the job done, the device driver is used to bridge PCI-based hardware
with SIMD (MMX + SSE + SSE2) extensions in your CPU. Notice that this time I added
SSE2 to the list. If you attempt to install one of these 2-chip PCI-based wireless
cards into a Pentium-3 or earlier with no SSE2 present, the installation will usually
fail with some strange error which never mentions that a Pentium-4 processor or
SSE2 was a minimum requirement. On top of this, if the card does install properly
in your Pentium-4, constant network chatter will rob your system of valuable CPU
resources which could affect other activities like
folding@home

ZONET
- WES1605which is based upon the Libertas 802.11g/b Wireless chipset
(W8335) from Marvell Semiconductor, Inc.Notice that this is only a half-height
PCI card.

Cyber
Station - NW-5411which is based upon the RTL8185 54M Wireless LAN
Network Adapter from RealtekFor some reason, this picture has a piece of
gray tape over the larger chip.

BTW, I'm not trashing these these companies or
their products; just be aware that there is a reason why
these half-height PCI cards cost $19.

This PCI card worked properly on all my computers (VERY HIGH
QUALITY):

Netgear - WN311BSupports: 802.11n as well as 802.11b/gNote: purchased for $29 at a technology liquidator

Theses two USB products worked properly on all my computers:

LinkSys
WUSB11 (v4)Supports: 802.11bNote: purchased
for $25 at a liquidator because it has been discontinued

Cyber
Station NW-5419is based upon WN-G54/BB from I-O DATA DEVICE,
Inc.Note: This is an 802.11 g/b pocket tool I picked for $19(although
I hated the setup software which was only presented in Kanji. Thankfully I was
able to fumble through it)

2010 Hardware Scam (sort of)

Back in the day, my employer was too cheap to buy commercially manufactured
PCs so we were provided with Asian clones. Man, I hated Windows along with the
Blue Screen of Death (BSoD) and always wondered why these machines were not
a stable as my VAX minicomputers WHICH NEVER CRASHED AFTER RUNNING FOR YEARS.

Then around 1992, I attended a 4-week Synoptics Networking course in Toronto
where every student was assigned a top-of-the-line Dell desktop. We never experienced
a single lockup or BSoD.

Since those days I have been buying name brand PCs for home use (Compaq
and HP) and they are, for the most part, rock solid. I'm not still not giving
Windows a free pass, but you can't blame Windows if runs into problems while
running on cheap hardware.

So why do people love VAXs, Alphas, SUNs, and iMacs? Answer: those manufacturers
control what hardware is in the box which makes them much more stable but also
a lot more expensive.

Initially, all the components designed for VAX were manufactured by
Digital Equipment Corporation (DEC) and were very expensive (I remember
paying over $600.00 for
a single speed CD-ROM drive). Then third-party manufacturers decided to
grab a piece of the expensive-hardware pie.

When DEC migrated from 32-bit VAX to 64-bit Alpha, they were able to
drop the cost by 90% just by using COTS (commodity off the shelf) technology.
For example, initial Alpha boxes contained these industry standard buses:
ISA, EISA, PCI, etc.

Since 2007 I have been supporting
BOINC and Folding-at-home on a dozen machines which means they are never
powered down. So here are a few observations:

One AMD-based PC burned out the dual-core processor (but this has been
a problem with AMDs for years)

After two years, one PC began to intermittently lockup and this was
traced to a bad wireless NIC (Netgear WN311B which was purchased from a
clearance center)

All PCs seem to burn out their main power supplies (a.k.a. switching
supply) after 18-24 months

sometimes the fan will seize (which then forces a thermal shutdown)

sometimes the output power will droop when hot

sometimes the power supply fails 100%

The majority of new machines ran warm or hot but subsequent BIOS upgrades
usually fixed the problem (Pentium-D was hotter than Core2, Core2 was warmer
than Core-i7)

Recently (January 2010) a friend of mine boasted about buying an iMac based
upon Intel's Core-i7 quad-core CPU. The funny thing about this is that I had
just purchased two Windows-7 based systems with
the exact same processor and memory for the same price as
one iMac. These machines have never locked up and
I've noticed almost the same number of patches being published by Microsoft
as Apple. (although Apple keeps their patch releases quiet)

My gripes about PC hardware

Memory 'Error Checking' in PCs

a call to arms: Engineering must
overcome Marketing...

Introduction:

I just (2001.08.30) fixed a PC for a friend (a DELL P2/266 with 64MB of
memory running Windows-98)

Two other people had attempted to repair it before me (including reloading
Windows)

The machine "seemed" to worked fine except the internet was unusable:

you could connect to an ISP via dialup

you couldn't surf with a browser

email would only work occasionally

Observations:

This was a DNS problem since testing proved you could surf the net using
I/P addresses but not DNS names

Further testing with CLI program NSLOOKUP verified my suspicions.

I decided to load a GUI-based PING/DNS tool (from an old copy of WRQ's "Reflection
Suite" that was laying around my bench) and noticed that a "text box"
in one of the dialog panels was full of colored streaks.

I immediately decided to run memory diagnostic
MemTest86 and discovered some bad memory
locations in one of the DIMMs. Obviously these locations were trashing DNS lookups,
but not crashing Windows

Summary:

A calculator that produces wrong answers is worse than no calculator at
all (because you could have relied upon pencil + paper)

Likewise, a computer that cannot detect hardware problems, but continues
to runs incorrectly without crashing, is worse than no computer at all

In this age of virtual memory PCs, it should be possible for the OS to map
out bad pages of RAM based upon internal checks (since virtual memory is mapped
to physical memory, most apps wouldn't be aware that anything happened)

The slow way to do this is to do an extensive memory diagnostic every
time you boot (this is one reason that many virtual memory minicomputers
of the 1980s took so long to boot)

A faster way to do this is to add parity generation/testing to all RAM
transactions, then do one of the following...

keep a boot-readable memory failure log somewhere on track zero
of the system hard drive (this would be similar to a bad-block list
associated with a hard drive)

store a boot-readable RAM memory failure log in a dedicated EEPROM
on the motherboard

store a boot-readable RAM memory failure log in a dedicated area
of the BIOS CMOS memory

Note that many PC mother boards are manufactured with error detection/correction
support installed but el-cheapo marketing people only install non-parity
memory chips then disable error detection/correction hardware in the BIOS

Computer engineering companies
that predate the PC era (e.g. HP, IBM) need to go back to their roots:

Don't manufacture systems as if they'll be marketed to gamers.
Design them as if each one will be used by bank accountants.

Install and enable parity memory in all your systems, then communicate
this fact to your customers. Tell them that they'll save a huge amount
of time and money over the total-life of these computers by getting intermittent
systems out of the hands of users.

The first company that does this will blow away the competition

Parity checking:

The simplest and cheapest way to implement parity checking is to install
9-bit SIMMs (or DIMMs) then enable this feature in your system's BIOS

This scheme requires that 8-bits be protected by one more bit.

Most mother boards already support this.

PCs and MACs in the 1980s had this feature but "bean counters"
and competition from "low margin" system integrators took it away
from us.

Caveat: this scheme cannot detect double-bit errors
in a single byte

ECC:

A slightly-more expensive technology (which is seen in all servers) is
called ECC (Error Checking and Correction or Error Check Code) which
can detect/correct
all single bit errors and detect all double bit errors.

One scheme (used in the PDP-11/44) required that 32 data bits be protected
by adding 7 syndrome bits resulting in a total of 39 bits

An OS-based error log could let you view the true health of your memory

many mini computers of the 80s and 90s had this and there is no reason
why this technology shouldn't have trickled down to PCs by now (I guess
technology, like ECC, separates the servers from the toys)

Final Thoughts:

PCs will never be considered anything more than toys until support for memory
error detection is included in both hardware and software. (hardware should
detect the error and then Windows will need to react to it gracefully, if possible,
with something other than the currently meaningless "general protect fault"
catch all.)

Memory chips can develop hard (permanent) and/or soft (temporary) errors
by any of the following methods:

ESD (electro static discharge)

many retail technicians do not use anti-static straps when installing
chips and/or boards.

many retail outlets will "hand you" a memory chip not
in an anti-static package

chips will be weakened by these handling events, and may initially
work. But they have been weakened and will eventually fail due to operational
or environmental stresses

Heat

blocked or stalled cooling fans

over-clocking your mother board

Radioactivity

slight impurities in the plastic or ceramic chip packages can emit
alpha particles which can flip a bit

Cosmic Rays

high energy photons can flip a bit

In the mid 1990's some SIMM manufacturers
where selling 9-bit (parity) SIMMS which were really 8-bit SIMMs with a cheaper
parity generation chip in place of the ninth bit storage unit. The parity generation
chip tested the parity of the data to be sent to the CPU and then produced the
appropriate parity signal to satisfy the system. Manufacture
and sale of these products must be treated as fraud.

I have personally seen know-it-all kids "fix" a flaky system by
disabling parity checking even though parity memory was installed. This is OK
for diagnosis but insane as a final solution.

PC Power Supplies: Elephant in the room

Okay so it is 2012 so why can my BIOS access every aspect of my PC hardware except
the power supply? Let's say I want to add a high-power graphics card to my system
which already contains a 450 Watt power supply. It would really be nice to know
how much power is already flowing through the power supply so I would know if I
need to upgrade the supply (or not). On top of this, how hard would it be to measure:

all output voltage levels

all output current levels

power supply temperature

how hard the switching supply components are working

optionally: input voltages, input currents, and power factor

Most servers have been able to do this for more than a decade. Okay, so the additional
components might add a dollar or two to every power supply. Why do we always need
to be so damned cheap?

Software Links

DLL Examples for
novice Windows programmers

What is a DLL? Many Windows applications, and Windows itself, are built
built as a collection of callable DLLs (Dynamically Linked Libraries) rather than
static executable binaries. For examples of this, check out the size of MS-Internet
Explorer (IEXPLORE.EXE) which is only 89K, or the size of MS-Outlook Express (MSIMN.EXE)
which is only 56K, yet both programs call the same "HTML rendering engine"
which is implemented in the system DLLs. When you've got Outlook Express running
at the same time as three instances of IE, there is only one set of DLLs loaded
which definitely saves memory.

Note: As most C++ programmers already know, C++
parameters are type-enforced by name mangling. While
this causes no problems if C++ applications are calling C++ DLL routines, applications
written in other languages will not be able to call a DLL written in C++. In order
to get around this obstacle you must disable name mangling
of exported names by surrounding the whole C++ source in a "C" wrapper
like so:

extern "C" {
[ ... whole c++ DLL source goes here ... ]
}

Alternatively, you could write your DLLs in "C" but this may not always
be possible.

Diagnostics

www.memtest86.com is the home of
the free x86 Stand-alone memory diagnostic. Note:
this software was released as part of Gnu Public License (GPL) and was produced
for people using Linux on x86 but can be used from Windows as well.

This book is subtitled "A Tutorial on the Algorithm &
Software for Laymen, Students, Technicians & Working Engineers"
and weighs in at 180 pages. I wish I would have owned a copy of this
book 10 years earlier because I would have saved considerable time and
money.

4 chapters on DFT

6 chapters on FFT

10 appendices

The
second book is titled Understanding
FFT Applications (1997/2004)

This first edition of this book (1997) is subtitled "A Tutorial
for Laymen, Students, Technicians, & Working Engineers",
weighs in at 415 pages.

This second edition of this book (2004) is subtitled "A
Tutorial for Students, Technicians, & Working Engineers",
weighs in at 278 pages, and comes with a CD-ROM

All books contain example programs written in GWBASIC so that Fourier
concepts can be more easily demonstrated. First edition books required purchasing
floppy disks at a nominal cost to cover shipping. Second edition books contained
a common CD-ROM

purchase the printed book or download a free PDF copy (but you should
buy the book; your printer will thank you for not abusing it)

Sienna Software makes a really neat
Try-B4-U-Buy astronomy program (for the Mac & Windows) called
Starry Night. Developed in Toronto,
Ontario, Canada. They also produced a cool "star ship" style learning
program called Deep Space Explorer

If you write SQL scripts on Windows you may have discovered the following
annoying problem:

You used either NOTEPAD or WORDPAD to create SQL scripts with an "SQL"
file extension but "Windows-XP Search Companion" (the right
click thing) can't locate desired strings in these these text files.
Using "folder options" to add an association between ".SQL"
and NOTEPAD doesn't fix the problem which means that "Search..."
must be using its own list of file extensions. Note that this worked in
Windows-2000 and may have something to do with Microsoft's own database
products.

Agent Ransack is a free add-on to be used as an alternative to Microsoft's
fubar: https://www.mythicsoft.com/agentransack
After installation the name "Agent Ransack..." will appear under
the "Search" item anytime you right click on a folder or drive.

use replay mode to land Apollo 12 in the Ocean of Storms. Once
you're on the surface, hit the zero-key to begin an EVA. Use the arrow
keys to rotate 180 degrees then press the "X" key so you can back
out of the LM and crawl down the ladder. Use the right arrow key to turn
then hit "W" to walk forward a few steps. Hit the "F"
key to plant the flag (it will also be visible from the cockpit view by
pressing the "1" key; hit the "0" key to go back to
the EVA). Look around for a nearby crater and notice that Surveyor-3
is within 200 meters (650 feet). Use the "W" key to walk towards
it.

Once you're on the moon, punch V37EN12E into the AGC/DSKY console
to initiate an automatic launch. Click
Ascent Procedures for more details.