|
essays |
This
is a collection of stuff I've written over the last couple of years; most
of these essays were originally posted to various internet mailing lists.
I haven't made any real effort
to choose the best examples of my writing, or the most informative
or useful... These are just the ones that happened to catch my eye
as I was browsing through my "Copies to Self" e-mail folder.
Some messages have been slightly
edited.
Where I've included messages
(or portions of messages) written by other people, their text appears in
blue.
|
Automotive:
Brent
Brent - One Week Later
Dynos, Torque, and Horsepower
Daytime Running Lights
Gun Control: Canada vs.
USA
Auto-Racing Helmets
Stainless-Steel Brake Lines
Speeding Tickets
Automotive Fire Extinguishers
Math/Programming:
Two's Complement and Binary Math
"Say it in Code" vs. "Say it in Comments"
Other:
India's Recent Nuclear Tests
|
|
Brent
This is from the NSX mailing
list... It's way too long and not very funny, but it's important
because it sets up the next exchange. |
From:
Brent
Subject:
PLEASE PLEASE PLEASE READ!!!!
Ok, man have I got a story for you,
if you want some laughs, some crys and some all out BULLSH*T from Acura
and my car, then read on...
Saturday, April 27th, I head down
to CONCORD ACURA, to look at this Black/Black 92' NSX that is there on
consignment from a lawyer, after looking at the car, anaylizing it hood
to trunk, I decided, yes, I DO want to buy this car, so I put a $500 dollar
deposit on the car to make sure I had first rights to it, they told me
come back on Monday, by that time the "owner" should have all the consignment
paperwork finished and the NSX will be ready for you to take home.
2 days of hell pass, and Monday
rolls around. I get a page on my pager at 10AM with the message "Brent,
this is Don at Concord Acura, your NSX will be ready at 2PM for pickup,
see you soon". I smiled happily and continued to eat my breakfast.
Well 1PM rolls around and I call a friend up to drive me to CONCORD ACURA
to pick up my new NSX.
Keep in mind that NO OFFICIAL deal
had been done beforehand, but my deposit meant I had first dibs on the
car and that we'd to "paperwork" when I got there at 2PM Monday.
I pull into CONCORD ACURA at 2:13PM
Monday afternoon, to find my future 92' NSX not on the showroom.
I quickly asked where it was, and found out it was in the back being washed,
I walked back there to check it out and saw it sitting there, all pretty
with soap suds all over it. I noticed condensation in the left taillight,
I quickly grabbed the manager, and made him aware of the condensation.
A NSX tech came out, ripped the whole trunk liner out of the car and noticed
a very very minor crack in the lens from the inside, that was leaking water
into it. They "patched" it and ordered a NEW taillight lens UNDER
WARRANTY! *note, warranty expired 1 year ago*.
Well, it's now 3:30pm, the car STILL
is not ready to leave and the OWNER still has NOT signed the car off to
be sold, the car had NOT been smogged, and they were still doing the "saftey
inspection". The General Manager continued to call the owner to get
him to take care of the issue. Needless to say I was getting agitated.
To make a long story short, 6:30pm rolls around and the car STILL hasn't
been solved, granted it's ready to drive home, but the paperwork from the
owner still hasn't been settled. I finally said "fu*k" it and left.
Not more than 10 minutes after I leave I get another page... "Brent, the
deal has been done, come back and pick up your car.". My friend turns
the car around and we head back to CONCORD ACURA. We pull in, I shake
the guys hand and get the "paperwork" started. 20 minutes later,
its done I give the man $2000 in cash *all 50's* and grab my keys, and
begin to head out the door.
NOW NOTE: I already had my
credit union APPROVE the loan for my car, so I had 5 days to bring them
a check, or they were going to finance me with a 20% interest rate.
I agreed, and said I'd have the check to them no later than Saturday, simply
because I have to work and it's hard to get to Concord from Los Gatos,
it was noted ON THE TEMPORARY contract that I had till May 3rd to get them
the check.
I drive the car to my moms, getting
tired on my way home I decided to stay there for the night, and head to
the credit union in the morning.
April 28th, Tuesday:
I wake up at the crack of dawn to
run outside and stare at my baby parked in my parents driveway. Shiny
as hell, sun gleaming off the hood. 6AM I couldn't sleep, what do
you expect I waited 3 years for the damn thing and it was FINALLY mine!
WAIT THERES MORE! This is where it gets good... read on...
8AM, I head to my credit union to
pick up the check for my car, I arrive go inside and take care of it.
9:30AM rolls around, the paperwork/check are in my hand and Im off to work
for the day. 1:30PM in the afternoon my mother pages me, I ignore
the page and continue on with my day of work. 2PM rolls around, and I have
to go to my "old" job to pick up my final paycheck and drop off my pager
*it belonged to them*. I drop off my pager, pick up my check and
head back to work at 3PM. 5:30pm creeps up on me and I remember out
of no where that I had forgot to call my mom, so I grab the phone and call
her. She answers the phone "Brent! Im so glad you called you
would not believe how many times CONCORD ACURA has called me, they are
FREAKING out, and are demanding a check from you today!" I replied
"What the hell are you talking about? The checks in my glovebox mom,
Ill take it there as soon as I can, Im at work." She then says "Just
call them, they are upset with you.". I promptly hung up the phone
and dialed CONCORD ACURA.
I get the nice receptionist, and
request to speak with Lloyd. Lloyd comes on the phone, and I greet
him with "What the hell is this I hear your calling my mom about MY car,
asking about the check that I need to bring to you". Lloyd replied
"We called your credit union, to make sure you had the funds for this car,
we know that you picked it up and are waiting for you to bring it in."
I then said "What difference does it make, Ive got the damned check, you
had no right to call my mother, OR my credit union, but you know what Lloyd,
since your open for another 2 hours, Im going to drive this god damned
check out to you right now, will that make you happy??" He replied
"Your a prince, thank you so much.".
1 hour later, I pull into CONCORD
ACURA, to find that ALL of the managers, and the sales guy that I dealt
with on my whole care deal "left" for the day, about 5 minutes before I
arrived, *How nice, they got out before I got there*. I feel bad
for the poor GM who got an ear full from me. I came in, litterally
THREW the general managers doors open, and chucked the check onto the desk,
and said "Here's your $45,000 dollar check, give me a receipt right now,
so I can leave." He jumped up, saying he was sorry and what not, and he'd
be right back with my receipt. He came back about a minute later,
with a receipt in his hand and again he said he was sorry about what had
happened. I replied "I don't give a shit how sorry you are, what
you did by calling my house 4 times *which they did, I checked my messages*,
and calling my MOTHER who had nothing to do with my car purchase, and again
CALLING MY DAMNED CREDIT union to see if I had picked up the check, and
then calling my WORK OFFICE to get a hold of me, was 100% unacceptable.
My contract said I had 5 days to bring you this check, it has not been
24 hours and you guys are breating down my neck.", I continued on with...
"Now I understand that it's not every day you see a 19 year old guy buying
an NSX, but you should have known by my credit, by my job, and by meeting
and talking to me that I meant business when I bought this car, and that
for all means I would not have dicked you over. If I were going to
dick you over for a car, it wouldn't be a used NSX, it woulda been a god
damned NEW one, you have pissed me off beyond belief, tell Lloyd that Honda
of America WILL be hearing about this WHOLE deal, and that my taillight,
titanium key, and tire certificates had better be ready by Saturday or
the shits gonna hit the fan." I turned away, heading for the door, when
the GM on duty came up to ask me if there was ANYTHING he could do to make
up for it, I replied "Im affraid not, this whole deal from the start was
nothing but trouble, you should have had the paperwork from the owner DONE
before you even set the car on the showroom to be sold, that's your fault.
I let it slide yesterday, but this has pushed me over the edge." I pushed
the door open to the outside, got in my car, and began to back up.
He AGAIN asked me if there was ANYTHING he could do, I shook my head, and
told him it was too late.
I backed up, pulled out of the driveway
and drove home very very upset.
I want to know guys, what do you
think? Do you think I over reacted? Do you think that they didn't
service me well enough? What do you think I should do? I want to
write a letter to Honda/Acura, I think they were jerking me around all
day Monday to begin with, I don't think they thought I was serious. I really
could use your opinions, I think Honda/Acura should hear about this.
OH YAH! One other thing,
the GM after seeing what I did for a living *Im a PC tech*, asked me if
I knew anything about Windows 95, I told him yes, and what not, next thing
I know I was in his office fixing his stupid laptop computer, 5 minutes
and I had all his problems fixed. This was saturday, you would think
that after doing that, that he would have treated me better, I mean com'n
I fixed the damn guys computer too.
Anyways tell me what you think guys...
private email or public to the whole group is fine, I just need to know
what I should do.
-Brent
Brent:
Ok, you asked for it.
Let's see... Your message describes:
An NSX technician
going to great lengths to fix a tiny crack in your taillight (for free),
A General Manager who's continuously
calling the previous owner to get your paperwork done,
A nice receptionist,
A guy named Lloyd who called you
and your credit union to verify that your financing was taken care of,
and who later called you a prince,
A General Manager who apologized
profusely to you, rushed around the office to get you a receipt, and twice
offered to do ANYTHING [your emphasis] to make you happy, and...
A 19-year old kid acting like a
complete dick. |
Uhh... That last one would be you.
As I see it, you have two options:
1.
Follow through on your threat and TELL Honda of America that their dealer
in Concord calls more than once when initial telephone calls go unreturned.
You can probably get the previous owner to sign an affadavit to this effect,
since the dealer called HIM repeatedly, too.
(Of course, the dealer's persistence
didn't bother you THEN, did it? Hmm...)
I'd REALLY like to see you manage
to make this look like an unpardonable sin, worthy of the excessively bad
manners you displayed. Send me a copy of the letter.
2. Do the right thing.
Go back to the dealership (no, doing it on the phone is NOT good enough)
and personally apologize to each person whom you treated badly. If
you did any yelling in public (I couldn't tell from your message), go home
and write a letter to the owner of the dealership, apologizing for making
his employees look bad in front of their co-workers and other customers. |
Here's a tip that'll probably help
you in life: The measure of a man's worth has little to do with whether
he can make a salesman beg, a waitress cry, or small animals run in fear.
Grow up, Brent.
-Andy |
|
Brent
- One Week Later
It's great how things work out
sometimes...
|
From:
Brent
Subject:
SO SCREWED!!!
Well folks, I just breached my first
week of NSX ownership and I got a FUCKING speeding ticket tonight.
*Sorry for the profanity, but after reading this you'll understand why*.
It's friday night, 2AM and Im heading home at a mere 70MPH in a 65.
I have a friend in the car with me, and he's like "How fast you taken this
car" I told him Id taken it to 140mph before, which I have.
So I decided what the hell there's NO CARS on the road at all for the next
3 miles that I can CLEARLY see so I jumped on the gas and speed up to about
110mph, as soon as my needle hit the 110 mark I let of the gas and let
the air/gear slow me down without breaking. Low and behold OUT OF
NOWHERE lights appear behind me, wouldn't you know it, a god damned CHP.
I pull over, he immediatly asks for my license, and told me to turn the
vehicle off. I explained to him that I had just bought the car, his reply
was "You bought this car? Or your parents bought it for you?"
I replied "I bought this car, with my own money." He replied "Where
do you work?" as if it really matters? I told him where I worked,
he proceeded to the back of the vehicle and came back about 15 minutes
later with the ticket filled out. He told me that I was written up
for some BS penal code that I had exceeded the CA stat law of excessive
speed in a freeway ie: 90+ in a 65. I noticed he left the make/model
of the car blank, I questioned it, he replied "Oh yes, what the hell kind
of a car is this anyways?" his exact words! I told him it was an
Acura NSX, he said "Acura NSS?" I said no, NSX, he again said "NSS?" I
then gave up and just pointed to the silver word next to the door handle,
it was easier than explaining it to this cop. He handed me the ticket
and said "If I were you Id reconsider your driving habits" and turned around
to walk away. Didn't give me the have a nice evening or nothing,
just turned and left.
Needless to say, Im sad, 3 years
of hard work to get this "Dream" car of mine and to own it one week and
get my first excessive speeding ticket. I just want to know one thing....
WHERE IN THE HELL DID HE COME FROM!? Its like he fell out of the
sky, I mean I am a VERY VERY cautious driver, and I was looking CONSTANTLY
behind me and around me, and saw nothing until BAM red/white lights were
on. I couldn't believe it, it was almost like he followed me with
his lights off until he got close. What a night... It's now just
barely 3:44am and Im going to bed. Take care guys...
-Brent
Brent:
This is hilarious. Will you
be posting messages like this EVERY week? Maybe you can archive them
on a web page or something. I can see it now...
Week #1: Brent Buys a Car
.... so I
walk in, and one of the salesmen makes eye contact.
"What are YOU looking at," I yell,
"Haven't you ever seen a 19-year-old with his own money, you stupid son
of a bitch?" |
Week #2: Brent Burns Rubber
.... the cop asks, "Do you have
any idea how fast you were going, Son?"
Thinking quickly, I reply, "I bought
it with my own money." |
Week #3: Brent Buys a Clutch
.... the Service Manager comes
out, shaking his head. "Yep, it's the clutch all right. Looks
heavily abused."
"This is the last straw!" I scream,
stamping my little foot, "I did less than a hundred burnouts and the clutch
is gone ALREADY? Your cars are junk!"
"It's going to cost $1,500 to replace."
"What! $1,500! It's
because I'm 19, isn't it? Answer me, Buttwipe!"
He starts to blubber something like,
"No, sir. The usual price is $2,000, but we gave you a discount because
you're a good customer," but before he can finish, I knee him in the groin,
shove him out of the way, kick open the door to the General Manager's office,
and tell him I'm gonna execute every motherfucking last one of his employees.
Do you guys think I overreacted?
Please, please, please let me know.... |
Week #4: Brent Bags a Babe
.... so one of those dumb cops
finally arrives at the scene of the accident and asks what happened.
I just point to the dead girl on the hood of my car; it was easier than
explaining it to this cop.
He wants details, so I tell him,
"Ok, look... We were driving through a school zone, just speeding a LITTLE
-- maybe 60 in a 25 -- and my friend says, 'Bet you can't drive a mile
with your eyes closed.'
"Now, I know from experience that
I can drive ALL DAY with my eyes closed, so I say, 'You're on!' and he
blindfolds me.
"I've gone about half a mile, and
I'm thinking, 'Yeah... NOW my friend will know how truly cool I am,' when,
all of a sudden, BAM! This girl splatters herself all over the front
of my car.
"Yeah, you heard me right... MY
car. Bought it with my own money. I'm 19, you know.
"Best I can figure, Officer,
is that she must have dropped out of the sky. That's the only way
to explain it... I am a VERY VERY cautious driver." |
Etc...
Ain't karma wonderful?
-Andy |
|
Dynos,
Torque, and Horsepower |
"Dyno" is short for "dynamometer";
it's a machine that measures the torque of an engine.
There are a couple of ways to build
a dyno... Some keep the engine running at a constant speed and put a gradually-increasing
load on it; others put a constant load on the engine and see how rapidly
it can accelerate under that load.
There are dynos that measure the
torque right at the flywheel ("engine dynos") and dynos that measure the
torque at the rear wheels ("chassis dynos"). Chassis dynos are more
convenient for those of us whose engines are already in our cars, but since
their measurements are affected by losses through the drivetrain (which
are usually only estimated), their absolute accuracy is lower than that
of engine dynos.
You'll notice that I've talked about
measuring TORQUE, not horsepower... That's because dynamometers can't directly
measure horsepower; horsepower is CALCULATED from the measured torque.
Here's how it all works:
Torque is the product of a force
and its moment arm. That is,
Torque = FR, where F is the force
in pounds and R is the length of the moment arm in feet.
Work is, for our purposes, the
product of a force and the magnitude of its displacement. That is,
Work = FS, where F is the force
in pounds and S is the displacement in feet.
Power is the rate at which work is
performed:
Power = Work/Time. We'll
measure time in minutes.
As I mentioned, dynamometers only measure
torque, in foot-pounds. To calculate horsepower, we have to combine that
torque measurement with a time measurement. Here's how:
A long time ago, James Watt performed
some experiments and determined that a horse could lift 550 pounds at a
rate of 1 foot per second. This unit of power, 550 foot-pounds per
second, became known as the "Horsepower".
Since I already said that we'd be
dealing with time in MINUTES, not seconds, we can multiply by 60 seconds/minute
to get:
1 Horsepower = 33000 foot-pounds/minute,
which implies that a horse can lift
33000 pounds a distance of one foot in a minute, or launch a one-pound
weight to the dizzying height of 33000 feet in the same time... No mean
feat.
But I digress.
To calculate an engine's horsepower
at some given speed, you do the following:
Rev the engine to the desired speed.
Measure the torque at that speed.
Multiply the torque by 2 * PI *
the engine speed in revolutions per minute. This gives you:
X foot-pounds * 2 * PI * REVOLUTIONS
------------------------------------
MINUTE
where "X" is the measured torque.
If you look closely, you'll see that
this is a FORCE (in pounds) times a DISTANCE ("one foot * 2 * PI * revolutions"
is the distance the tip of our one-foot moment arm travels, in feet) divided
by TIME (in minutes).
From the definitions I gave earlier,
FORCE times DISTANCE divided by TIME equals POWER, so the above equation
gives us power (expressed in foot-pounds per minute).
To convert from foot-pounds per
minute to horsepower (one horsepower = 33000 foot-pounds per minute, remember),
we simply divide by 33000.
So...
Torque * 2 * PI * RPM
Horsepower = ---------------------
33000
Torque * RPM
= ----------------
33000 / (2 * PI)
Torque * RPM
= ------------
5252
which, incidentally, implies that every
engine's torque and horsepower curves always cross at 5,252 RPM.
-Andy |
|
Daytime
Running Lights
Canadians: This doesn't
apply to you, since your government requires the stupid things.
This piece provoked a rather
heated debate between Americans and Canadians... The discussion veered
rather quickly into the more-general subject of personal liberty and the
legislative restriction thereof, which -- of course -- meant that we ended
up talking about gun control.
See the next essay.
|
While it's appropriate for funeral
processions, schoolbus drivers, motorcyclists, and mommies in minivans
to drive in daylight with their headlights on, DRLs make all other drivers
look meek and terrified... As though they're the sort of people who wouldn't
venture out into the world without wearing a bright safety-orange nylon
vest.
I turn on my headlights (or driving
lights, depending on what car I'm driving) when I'm driving on very twisty
rural roads. I also tap the horn before exiting a narrow alley and
crossing a sidewalk.
Unless it were stupidly mandated
by U.S. law, however, I wouldn't be caught dead driving on open roads in
sunny weather with my headlights on, just as I don't really feel the need
to warn other motorists of my presence by sounding the horn continuously
from the moment I leave my driveway until I reach my destination.
Just my opinion; I could be wrong.
-Andy |
|
Gun
Control: Canada vs. USA
The gun-control discussion culminated
with this message... I kinda like the way we came full circle.
The blue text, of course, was
written by a Canadian.
|
[There is a] basic difference in
belief [between the USA and Canada, and] I would not want to be a citizen
of your country.
Of course you wouldn't... As a Canadian
citizen, you enjoy the protection of the United States against foreign
aggression (be it military or economic), but you neither have to pay for
that protection nor deal with the difficult problems associated with ensuring
it.
Hell, _I_ wouldn't mind being a
Canadian citizen, except that I don't think I could handle the weather,
the multicolored money, the way you people speak, or the high price of
cigarettes.
Do you think that in this day in
age when the weaponry available to the government by virtue of its armoury
(ie tanks, planes etc etc) is vastly superior to anything the citizenry
could even begin to muster, that the right to bear arms as a means of deterring
a bad government is valid?
You're right; the argument for private
gun-ownership as a means of discouraging government tyranny is a little
outdated... But we NEED guns, so we can shoot out those damn daytime running
lights.
-Andy |
|
Two's
Complement and Binary Math
Everything you always wanted
to know about the subject, painstakingly explained in excruciating detail. |
What is the difference between
2s complement, logical complement and complement (NOT) and any others?
Let's do the easy one first.
LOGICAL COMPLEMENT:
Glossary note: In this message,
"==" should be read as "is equal to", and "!=" should be read as "is not
equal to".
Ok...
Logical expressions ("p == q", "1
== 0", "x > 3", etc.) are either TRUE or FALSE.
The logical complement (NOT) of
an expression simply inverts its true/false state. For example:
"1 == 0" is FALSE.
"NOT (1 == 0)" is TRUE.
Often, logical expressions of the form
"x != 0" are expressed in a shorthand form: They're simply written
"x"; the "!= 0" is implied. For example:
"123" is TRUE.
"NOT (123)" is FALSE.
"0" is FALSE.
"NOT (0)" is TRUE.
If x != 0, "x" is TRUE and NOT (x)
is FALSE.
Ok... Now the harder ones: "One's Complement"
and "Two's Complement".
Before you can understand much about
this, you need to have some idea of how things work inside the PIC, so
we'll digress a bit into the realm of microprocessor ALU design.
BUILDING AN ADDER:
Let's say that you're designing
a microprocessor. Your employer, like most VLSI semiconductor vendors,
values efficient design over all else... All of your circuitry must be
built with the fewest possible number of logic gates.
You're assigned the task of designing
the ALU (Arithmetic Logic Unit) and today you're designing the portion
of the circuit that adds two binary numbers together. For simplicity,
let's say that each input is only one bit wide, and that you want only
a single-bit output (we'll evolve it to a full 8-bit adder with carry-in
and carry-out shortly).
You have a whole handful of logic
gates (we'll cheat a bit and say that you have AND, XOR, OR, and NOT gates,
even though XOR and OR can be built from AND and NOT)... How do you build
this single-bit adder with the smallest number of parts?
The first thing to do is draw the
Truth Tables for the gates you have. Here's the one for NOT:
A | NOT (A)
___|________
0 | 1
1 | 0
What this truth table says is that
if you input a "0" to a NOT gate, it outputs a "1", and if you input a
"1", it outputs a "0".
The truth table for AND gates is
similarly constructed, but the "AND" function takes TWO inputs (which we'll
call "A' and "B"), so there are four possible input combinations rather
than two:
A | B | A AND B
___|___|_________
0 | 0 |
0
0 | 1 |
0
1 | 0 |
0
1 | 1 |
1
The AND function works the way you'd
expect it to: If A and B are BOTH true (that is, if they're both
equal to 1), the result is also true (1); otherwise, the result is false
(0).
The OR and XOR gates each take two
inputs, as well:
A | B | A OR B
A | B | A XOR B
___|___|________
__|___|_________
0 | 0 | 0
0 | 0 | 0
0 | 1 | 1
0 | 1 | 1
1 | 0 | 1
1 | 0 | 1
1 | 1 | 1
1 | 1 | 0
"OR" is pretty straightforward:
If either A or B (or both) is true, the output is true.
"XOR" ("exclusive-OR") is only slightly
more complicated: If A or B (but not both) is true, the output is
true.
Where were we? Oh, yeah...
We were building a single-bit, no-carry adder.
Ok. Draw the truth table for
the "add two single-bit numbers A and B and output a single-bit result"
operation:
A | B | A + B
___|___|_______
0 | 0 | 0
0 | 1 | 1
1 | 0 | 1
1 | 1 | 0
Check it out... THIS truth table looks
just like the "XOR" truth table.
To perform this simple addition,
therefore, you just need one XOR gate; your two single-bit inputs go in,
and the result comes out. We'll write this as:
Now, look at the addition table again.
The first three results seem ok, but everyone knows that 1 + 1 does NOT
equal 0; it equals 2.
"2" is represented in binary by
"10", a two-digit number. Just as in decimal addition when we're
asked to add 5 + 5, we need to output "0" and "carry the one".
Since we were specifically told
to build an adder with just a single-bit result, we can be forgiven for
only outputting the rightmost bit, but in the real world, we're going to
need some way of carrying a "1" bit out of our sum whenever the result
is too large to fit in 1 bit.
So... Draw another, expanded, truth
table, showing both the single-bit result and the carry out (which we'll
call Cout) of the sum:
A | B | A + B | Cout
___|___|_______|_____
0 | 0 | 0
| 0
0 | 1 | 1
| 0
1 | 0 | 1
| 0
1 | 1 | 0
| 1
At this point, if you've been paying
attention, you should immediately notice that the "Cout" column looks exactly
like the "AND" truth table above. Go back and check it... See? 0,
0, 0, 1.
What does this mean? It's
simple: To add two one-bit numbers and get a single-bit result
and a carry, you need to feed your two inputs into an XOR gate to get the
sum, and simultaneously feed the two inputs into an AND gate to get the
carry-out:
Sum = A XOR B. Cout = A AND
B.
If we examine our output now that we've
added the Carry-Out, we see that it's correct:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 0, carry the 1.
This is all well and good for a single-bit
adder, but we usually deal with numbers that are 8 bits wide. Can
we just string eight of these two-gate adders together and have each one
operate on one pair of bits?
Well, yes, but we need to do something
with that carry-out bit. Specifically, we need to add each
one-bit-adder stage's carry-out bit to the next stage's output. While
we're at it, we'll want to add a carry-IN bit to the first stage, to make
it easy for the guy who's eventually going to buy our microprocessor to
perform additions on numbers that are larger than 8 bits.
Of course, carrying a "1" into our
addition will change our result, and the state of our carry-out bit
will now be dependent not only on the A and B inputs, but also on the carry-in
bit, which was similarly dependent on the PREVIOUS stage's inputs and carry-in
bit, which was dependent on the stage before IT, which was...
It's all starting to get complicated
now, so let's break the problem into two smaller pieces:
Let's do the carry-in ("Cin") first.
Think about what we're trying to do: We're going to add A and B together,
then add the result to Cin.
As we discovered earlier, addition
(if you ignore the carry-out, which we're doing for now) is equivalent
to XOR: A + B = A XOR B.
It doesn't take much of a stretch
to see that A + B + Cin, therefore, equals (A XOR B) XOR Cin.
We can test this with yet another
truth table; this one has eight combinations of three inputs (Cin, A, and
B), and shows the results of three oerations on those inputs:
Cin | A | B | A XOR B | (A
XOR B) XOR Cin | A + B + Cin ____|___|___|_________|___________________|____________
0 | 0 | 0 |
0 | 0
| 0
0 | 0 | 1 |
1 | 1
| 1
0 | 1 | 0 |
1 | 1
| 1
0 | 1 | 1 |
0 | 0
| 0
1 | 0 | 0 |
0 | 1
| 1
1 | 0 | 1 |
1 | 0
| 0
1 | 1 | 0 |
1 | 0
| 0
1 | 1 | 1 |
0 | 1
| 1
Yep... Acording to the truth table,
"(A XOR B) XOR Cin" produces exactly the same results as "A + B +
Cin".
Cool.
Now we deal with the carry-out.
This is going to take a little more thought.
Remember that, back in simpler times
when we were just adding A and B without a carry-in, the carry-out was
just equal to A AND B. Let's start by assuming that our final carry-out
bit will be equal to that simple carry-out, then figure out what circumstances
can change it.
Ok... Truth-table time again.
In this case, we're going to draw a table that tells us whether we
need to change the "simple carry-out" (A AND B) to get our final carry-out.
This truth table shows two inputs
("A + B" and "Cin") and one output (whether or not to change the simple
carry-out bit):
A + B | Cin | Change?
______|_____|________
0 |
0 | No
0 |
1 | No
1 |
0 | No
1 |
1 | Yes
You might want to take some time working
out simple examples to verify that the above truth-table is actually correct.
If you replace the "No" and "Yes"
entries with "0" and "1", this table looks just like the "AND" truth-table,
so we can start to express our carry-out logic as:
Step #1: Calculate a simple carry-out
by ANDing the two inputs.
Step #2: AND A + B with the carry-in.
If the result is 1, invert the simple carry-out bit; otherwise, leave it
unchanged.
Hang on... We're almost done; all we
need to do now is figure out how to express Step #2 in terms of logic gates.
If you go way back and look at the
"XOR" truth table, you'll see that it seems to do just what we want:
If input A is 1, the output is the inverse of input B; if input A is 0,
the output is equal to B.
If we make the XOR gate's "A" input
equal to "(A + B) AND Cin" (which we know is equal to "(A XOR B) AND Cin"),
and we make the XOR gate's "B" input equal to the simple carry-out ("A
AND B"), we can put this all together and get:
Carry-out ("Cout") = [(A XOR B)
AND Cin] XOR [A AND B].
So... The total description of our
"single-bit adder with carry-in and carry-out" circuit is:
Inputs:
Outputs:
Sum = (A XOR B) XOR Cin.
Cout = [(A XOR B) AND Cin] XOR
[A AND B].
The "A XOR B" term that appears in
both equations is just a single XOR gate whose output is split, so this
circuit requires only two AND gates and three XOR gates.
You can cascade as many of these
5-gate single-bit adder stages as you want; building a complete 8-bit adder
requires only 40 gates (or 41 if you want to provide an "overflow" flag).
Whew.
SUBTRACTION: ADDITION'S EVIL
TWIN
We've already built an 8-bit adder;
it takes two 8-bit numbers and a carry-in bit, adds them all together,
and produces an 8-bit result plus a carry-out.
Unfortunately, this won't fully
satisfy the people who'll be buying our microprocessor; the ungrateful
buggers will want SUBTRACTION, too.
Our first thought is that we'll
just build a separate binary "subtractor". After all, addition didn't
require too many gates; maybe subtraction won't take many, either.
If we build that subtractor, however,
we introduce a new problem: Subtracting a large number from a smaller
one gives a NEGATIVE result. So far, we've been treating 8-bit numbers
as positive
values in the range [0-255]; building
a subtractor will require us to decide on some way to represent negative
numbers, as well.
A moment's thought shows how we
can turn this requirement to our advantage: If we can come up with
a way to represent negative numbers, we can perform subtraction by
simply negating the subtrahend and ADDING it to the minuend. That
is:
"A - B" is equal to "A + (-B)".
This is an Exceedingly Good Thing;
it means that we can use our existing 8-bit-adder circuit to perform both
addition AND subtraction.
All we have to do is find a way
to represent negative numbers...
SIGN/MAGNITUDE
Obviously, we won't be able to represent
the full range of integers from -255 to 255 in only 8 bits; 8 bits
is sufficient for only 256 discrete values.
We can live with this, though...
So we'll first try using only the low (rightmost) 7 bits of each number
to represent the magnitude, and the leftmost bit of each number (the "Most
Significant Bit", or "MSB") to represent the number's sign (0 = positive,
1 = negative).
This means that an 8-bit number
will be able to represent values in the range [-127 - +127]:
Decimal: Sign/Magnitude:
-------- ---------------
1
= 00000001
-1
= 10000001
2
= 00000010
-2
= 10000010
127
= 01111111
-127
= 11111111
0
= 00000000
-0
= 10000000
Uh-oh. "Negative zero"?
What's THAT?
Let's gloss over it for now and
see whether our math works:
Decimal:
Sign/Magnitude:
--------
---------------
3 - 1 = 3 + (-1)
00000011
= 2
+10000001
---------
10000100 (-4) NOT CORRECT!
1 - 3 = 1 + (-3)
00000001
= -2
+10000011
_________
10000100 (-4) NOT CORRECT!
-3 - 1 = -3 + (-1)
10000011
= -4 +10000001
---------
Cout + 00000100 (4) NOT CORRECT!
(but sorta close)
-3 - (-1) = -3 + 1
10000011
= -2 +00000001
---------
10000100 (-4) NOT CORRECT!
That's enough... I think we can give
up on the "sign/magnitude"
representation now.
ONE'S COMPLEMENT
Ok... Let's try something else.
Rather than simply setting the MSB to 1 to represent negative numbers,
let's try inverting the entire byte. This is the "one's complement"
representation of signed binary values.
Like the "sign/magnitude" representation,
"one's-complement" will allow an 8-bit number to represent values in the
range [-127 - +127}.
It looks like this:
Decimal: 1's complement:
-------- --------------
1
= 00000001
-1
= 11111110
2
= 00000010
-2
= 11111101
127
= 01111111
-127
= 10000000
0
= 00000000
-0
= 11111111
We still have the same 0/-0 problem,
but again, we can gloss over it temporarily. Let's try some math:
Decimal:
One's complement:
--------
-----------------
3 - 1 = 3 + (-1)
00000011
= 2
+11111110
---------
Cout + 00000001 (1) NOT CORRECT!
1 - 3 = 1 + (-3)
00000001
= -2
+11111100
_________
11111101 (-2) CORRECT!
-3 - 1 = -3 + (-1)
11111100
= -4 +11111110
---------
Cout + 11111010 (-5) NOT CORRECT!
-3 - (-1) = -3 + 1
11111100
= -2 +00000001
---------
11111101 (-2) CORRECT!
This is more promising than the "sign/magnitude"
representation we first tried... If you look closely, you'll see that the
results that DON'T set the Cout bit are correct, while the results that
DO set the Cout bit are only off by one.
Maybe we can add a little circuitry
to add the Cout bit to the sum?
Well, we COULD... But we'd still
be stuck with that annoying "negative zero". Let's see if we can
get rid of that thing.
TWO'S COMPLEMENT
To generate the 2's-complement of
a number, you first find the 1's-complement (by inverting the entire byte),
then you add 1.
Zero is still represented by "00000000",
but something interesting happens when you calculate its two's complement:
Inverting the byte gives "11111111", and adding 1 to that gives "00000000"
again.
Voila! No "negative zero"!
Now, since an 8-bit number can represent
256 unique values and "zero" takes only one of those values, this means
that we can represent numbers in the range [-128 - +127] in our two's-complement
number system:
Decimal: 2's complement:
-------- --------------
1
= 00000001
-1
= 11111111
2
= 00000010
-2
= 11111110
127
= 01111111
-127
= 10000001
0
= 00000000
-0
= 00000000 (the same as 0)
-128
= 10000000
Just for kicks, let's try some math:
Decimal:
Two's complement:
--------
-----------------
3 - 1 = 3 + (-1)
00000011
= 2
+11111111
---------
Cout + 00000010 (2) CORRECT!
1 - 3 = 1 + (-3)
00000001
= -2
+11111101
_________
11111110 (-2) CORRECT!
-3 - 1 = -3 + (-1)
11111101
= -4 +11111111
---------
Cout + 11111100 (-4) CORRECT!
-3 - (-1) = -3 + 1
11111101
= -2 +00000001
---------
11111110 (-2) CORRECT!
3 - 3 = 3 + (-3)
00000011
= 0
+11111101
---------
Cout + 00000000 (0) CORRECT!
-3 - 2 = -3 + (-2)
11111101
= -5 +11111110
_________
Cout + 11111011 (-5) CORRECT!
Wow.
It looks as though the two's complement
representation is the way to go... There's only one representation for
"zero", all the positive numbers look the way they used to, the math seems
to work (if we ignore the carryout), and we even get an extra negative
number (-128) to play with.
Unfortunately, this is all for naught
if we can't build the appropriate circuitry with only a small number
of gates.
Let's see what it takes.
BULDING A CHEAP TWO'S-COMPLEMENTOR
Remember that the two's complement
is obtained by inverting the original number and adding 1 to it.
The inversion part is easy; a NOT
gate for each of the eight bits accomplishes it.
Adding 1, however, is more difficult.
As we saw earlier, addition requires 40 gates... We don't want to practically
double our gate-count just to do this one simple operation.
So what can we do?
Well, let's see... We're trying
to calculate A - B, and this is equivalent to A + (-B). In our two's-complement
notation, -B is equal to (NOT B) + 1, so we need to calculate A +
((NOT B) + 1).
Since addition is associative, this
is the same as (A + (NOT B)) + 1.
Hmm... What if we use our existing
"A + B + Cin" 40-gate adder, but we explicitly set the Cin bit to
1 and run the B input through an inverter? We'll end up calculating
A + (NOT B) + 1, exactly what we want!
So...
By adding only eight NOT gates and
requiring the user to set the carry-in before performing a subtraction
(a la the 6502 and other microprocessors) or just setting the carry-in
internally (a la the PIC), we've made our adder do double-duty as a subtractor.
Ok... At this point, I KNOW you're
thinking, "So we saved a few gates... Big deal," but for an ALU designer,
saving 30-odd gates is cause for a major celebration.
Sad but true.
Anyway...
MULTI-BYTE ARITHMETIC
Ok, so let's say that the guy who
buys our microprocessor will want to add numbers larger than 8 bits.
Specifically, let's say that he wants to add two 16-bit numbers.
How does that work?
It's easy... He clears the carry-in,
adds the two low-order (rightmost, or "least-significant") bytes, then
adds the two high-order (leftmost, or "most-significant") bytes; any carry-out
that's generated by the first addition will become the second addition's
carry-in.
For example:
Decimal:
Binary:
------------------
-----------------
1000 + 1000 = 2000
00000011 11101000 (1000)
+00000011 11101000 (1000)
-----------------
1 11010000 (adding the two low
bytes gives 11010000,
plus a "1" Cout)
00000111 (The low-byte's
Cout is
used as the high-byte's
Cin; adding it to the
two high bytes gives
00000111, with no Cout)
-----------------
00000111 11010000 (2000) CORRECT!
What about multi-byte SUBTRACTION?
Will the two's-complement representation still work there?
What about that "set the Cin to 1" trick? Will it affect the results?
Let's try it and see...
Decimal:
Binary:
------------------
-----------------
2000 - 1000
00000111 11010000 (2000)
= 2000 + (-1000)
+11111100 00010111 (NOT 1000)
= 2000+(NOT 1000)+1 +
00000001 (Cin = 1)
= 1000
------------------
0 11101000 (adding the two low
bytes, plus the "1"
Cin, gives 11101000,
with a "0" Cout)
1 00000111 (The low-byte's
Cout (0)
is used as the high-
byte's Cin; adding it to
the two high bytes gives
00000011, with Cout = 1)
-----------------
Cout + 00000011 11101000 (1000) CORRECT!
It works.
Note that we always ignore the final
carry-out when we're performing two's-complement math.
OVERFLOW, UNDERFLOW, AND OTHER
ESOTERICA
Ok... Two's complement DOES have
some problems. I've avoided them here so far, but you can get an
idea by adding 64 to 65:
A similar thing happens when you subtract,
say, 65 from -64:
Decimal:
Two's complement:
----------------------
-----------------
-64 - 65 = -64 + (-65)
11000000 (-64)
= -129 +10111111 (-65)
_________
Cout + 01111111 (127) NOT CORRECT!
Damn... And just when things were going
so well, too.
In both cases, the correct result
is too large to fit in 8 bits, so our 8-bit result appears incorrect.
Fortunately, most microprocessors
include an "overflow" bit that can alert you to this situation... It signals
one of the following two conditions, either of which indicates that the
result is too large to fit in eight bits:
Overflow Condition #1:
There was an internal carry generated
between bit 6 (second from the left) and bit 7 (leftmost) of the result,
but NO carry was generated out of bit 7 of the result.
Overflow Condition #2:
There was NO internal carry generated
between bit 6 and bit 7 of the result, but there WAS a carry generated
out of bit 7.
If neither of those conditions is true,
the overfow flag is not set and the carry-out of the result may be safely
ignored. If one or the other is true, your software needs to recognize
the overflow (or "underflow" if the too-large result is a negative number),
and compensate somehow.
Note, by the way, that the overflow
flag is simply an XOR of bit 6's Cout and bit 7's Cout... That's the extra
gate that I mentioned earlier -- the one that turns our 40-gate adder into
a 41-gate adder.
I'm tired now. Hope this helped.
-Andy |
|
Auto-Racing
Helmets |
What is the difference, if any,
between motorcycle helmets and car racing helmets?
You mean, aside from cost?
Motorcycle helmets carry Snell "Mxx"
ratings, where "xx" is the year of the Snell Foundation specs to which
they conform; auto racing helmets carry "SAxx" ratings ("SA" stands for
"Special Applications").
The Snell specs are updated every
5 years, so the newest helmets carry "SA95" or "M95" ratings.
SA helmets must have a Nomex liner
and are, therefore, more fire-resistant than M helmets.
In order to get the Snell rating,
both types of helmets must pass a series of identical impact tests.
In addition, the SA helmets must pass a test designed to simulate impact
with a rollbar.
Also, the "SA" standard allows a
minimum eyeport size that's smaller than the minimum allowed by the "M"
standard.
Some manufacturers include aerodynamic
features on their SA helmets that wouldn't make sense to put on an M helmet,
and many SA helmets are available with provisions for forced-air cooling
or emergency air supplies that are inappropriate or unnecessary for M helmets.
Manufacturing costs being what they
are, most manufacturers build their SA and M helmets identically (with
the exception of the inner liner), so it's possible that a particular M
helmet might meet the SA impact tests. You can't RELY on this being
true, however, and if your sanctioning body requires an SA helmet, you'll
need to have one.
Where is a good place to buy a car
helmet?
Pegasus Racing and Racer Wholesale
are two mail-order companies that stock a large selection of helmets, but
you really need to try a bunch of them on to find one that fits your particular
head. Here in Southern California, there are a whole BUNCH of race-supply
shops, but since I don't know where you live, I can't recommend one in
your area.
I can, however, give you some tips
on choosing a helmet.
First, you don't need to spend more
than three or four hundred dollars or so. A lot of helmets are more
expensive than that, but in general, their features are unnecessary.
For example, you don't need to buy the $850 Bell Feuling SS; it's expensive
only because its aerodynamic design is specific to Indy-Car cockpits. Similarly,
you don't need to buy a megabucks Stand 21 helmet; they're extraordinarily
light, but you're not going to be pulling 3Gs in your car, so you don't
need to spend those outrageous prices for every last ounce of weight savings.
Light weight, within reason, IS
sorta nice, though... So if you can afford it, pay a few extra dollars
for a kevlar helmet rather than a fiberglass one. My helmet's a kevlar
Bell AFX-1 Pro; it cost about a hundred dollars more than a more-or-less
equivalent fiberglass helmet.
Personally, I wouldn't even consider
buying a helmet made by anyone other than Bell or Simpson. I'm sure
many people would disagree; this is just my personal opinion.
Ok... Properly sizing a helmet:
The salespeople at the shops should
be able to give you some advice, but the important thing to remember is
that there should be ABSOLUTELY NO WAY that you can remove a buckled helmet
by reaching behind your head and pulling the thing forward. If you
can remove the helmet this way, it's too big and NOT SAFE.
POC members, of course, don't need
to worry about buying helmets too big for their heads... It's a physical
impossibility.
Anyway, when in doubt, go with the
smaller helmet size.
Sizes vary from manufacturer to
manufacturer (and model to model), so make sure that you find your size
by trying on the specific model that you want. After you put the
helmet on, buckle it and make sure you can't pull it off your head.
Then grab it and rotate it left and right; if it rotates freely without
deforming your face, it's too loose.
Next, let go of the helmet and just
shake your head back and forth. If, after a few shakes, the helmet
doesn't return to its original position (that is, if you have to reach
up and re-center it in order to see out the eyeport again), it's too loose.
You should also try nodding your head forward and back.
Finally, leave the helmet on (with
the visor up, if you like) for about half an hour and see if it gives you
a headache. If it does, it may be too tight.
Also, if you wear glasses under
your helmet, make sure that you can put them on through the visor... Some
helmets (like my Bell AFX-1) have pretty small eyeports, so this can be
difficult. You may want to check this even if you have perfect vision,
in case you ever want to wear sunglasses under the helmet.
One more thing... Once you find
a helmet that you think you like, get in your car while wearing it and
make sure that the eyeport's positioned/sized appropriately so that you
can see your instruments. You do NOT want to have to crane your neck
downward to see your tach or your oil-pressure light.
More stuff:
1. If you buy an extra visor
(maybe a dark tinted one), spend an extra ten bucks and get the Bell pivot-screw
hex wrench and "pivot kit" (two pivot screws, two washers, and a lock-down
button)... The Bell wrench (actually just a little "key") won't let you
accidentally strip out the threads, and you'll want the extra screws and
washers in case you lose or break one changing visors.
2. Helmet bags are nice, but
a little expensive for what they are... See if the shop will throw one
in with a helmet purchase.
3. Even with built-in vents,
etc., most helmets will fog up. I've always just used the Rain-X anti-fog
products (or a little soapy water in a pinch), but a few months ago, I
discovered something called the Fog City Fog Shield. It's just a
clear film that you stick on the inside of the visor, and it's absolute
MAGIC... It keeps the visor fog-free, with no re-application or special
maintenance required.
4. Even though they're hot
and a bit uncomfortable, think about buying a balaclava (those Nomex "head
socks" or "hoods"). Aside from the extra fire-protection it gives
you (about which you may or may not care), it'll keep the inside of your
helmet from smelling like a locker-room, and from soaking up whatever greasy
kid stuff you put in your hair. Depending upon the series in which you
plan to be competing, you may be required to wear a hood anyway.
Who can do a good custom paint job
for not too much money on a helmet?
Herm Johnson, at Just Herm Designs
(715 835-6026) charges a flat $275 to do a helmet, no matter how complex
the design is.
Troy Lee Designs' prices start at
around $300 and go WAY up from there, but he also sells decal kits that
you can install and clearcoat yourself. Decal kits are around $30;
you can reach Troy Lee at 909 371-5219.
Larry Ferguson, at The Art of Racing
here in the San Diego area (619 744-8623), will do a basic design for around
$300.
You can also paint your helmet yourself;
if you buy a decal kit from Troy Lee, you can paint one or two basic colors,
then apply the decals, then clearcoat the thing and end up with a real
nice-looking helmet for very little money.
If you paint the helmet yourself,
make sure that you do two things:
1. Before painting, clean
the helmet with one of the commercial wax/grease removers (available at
your local automotive-paint supply store), then sand the helmet's surface
(and, of course, clean it again after sanding).
2. Use acrylic enamels, NOT
lacquers; lacquers can damage the helmet shell.
-Andy |
|
Stainless-Steel
Brake Lines |
There are three reasons to install
stainless-steel brake lines on your street car:
1. They look racy.
2. They don't swell like rubber
lines, so they can potentially firm up your brake pedal.
3. If you're doing a lot of
off-road driving, the stainless-steel braid may protect your lines from
being punctured by rocks or whatever.
Here's the thing, though: Since
stainless-steel lines don't bulge as they age, and since the inner Teflon
lining is hidden behind the braid, there's no easy way to inspect the lines
for warning signs of imminent failure.
This is no big deal on a race car,
since the lines are (or should be) replaced at least once a season.
On a street car, where most people are likely to let YEARS go by without
even looking at their lines, it can be an issue.
Many people, therefore, warn that
you should use rubber lines instead of stainless steel... They'll be
happy to give you anecdotal evidence of steel lines simply bursting (or,
more commonly, separating from their hose-ends) catastrophically and with
no warning.
I haven't seen any references
to this sort of failure that mentioned whether the lines were:
REAL Aeroquip or Earl's hose,
attached properly to the CORRECT
hose-ends, and
installed properly on the car.
I define "correct hose-ends" as Earl's
Speed-Seal (which used to be called Fluor-O-Seal) or Aeroquip Super Gem,
and "real hose" as Earl's Speed-Flex (which used to be called Fluor-O-Flex)
or Aeroquip TFE Racing Hose (which used to be called Teflon Racing Hose).
Anyway, Speed-Seal hose-ends work
just like Earl's Swivel- Seal ends; the hose-end can swivel after assembly.
The nipple/cutter assembly on these ends (and on Aeroquip Super
Gem ends) was specifically developed to prevent blowoff of the hose-end...
I'm still waiting to hear from anyone who has firsthand knowledge
of one of these hose assemblies coming apart, and until I hear from
that person, I run "real" stainless-steel lines on my car and
replace them regularly.
THIS IS IMPORTANT: The lines
that your performance-parts distributor will sell you are made with no-name
hose from God-knows-where (probably Taiwan), and the hose-ends are just
swaged-on fittings that are an invitation for disaster. I won't
put these on my car, and I don't recommend that you put them on yours,
either.
People keep asking me whether the
above-stated caution applies to the new "DOT-approved" stainless-steel
hoses... Here's what I have to say on THAT subject:
First, a quick explanation of what
stainless-steel brake lines ARE:
The brake lines we're talking about
are the flexible ones that connect between the hard lines (i.e., the inflexible
tubing) in the car and the brake calipers on the wheels.
They've traditionally been made
from rubber tubing, with steel or aluminum connectors crimped onto their
ends. Nearly all passenger cars are shipped with rubber brake lines, and
they hardly ever fail.
"Stainless-steel" lines are made
of Teflon tubing, not rubber. Teflon has a number of advantages over
rubber; the chief ones are that it doesn't expand under pressure and it
doesn't deteriorate with age. It also resists high temperatures and
is chemically inert, so it's compatible with all brake fluids.
However, Teflon is pretty fragile,
so it has to be protected from physical damage (chafing, flying rocks,
etc.). Although some manufacturers armor their Teflon hoses with
Kevlar, most protect the Teflon with an external sheath of braided stainless-steel
wire... So that's why armored Teflon hose is usually called "stainless-steel
hose".
The ends of the hoses have to be
securely attached to the brake calipers and the hard lines, so each hose
is terminated by threaded hose-ends.
Those hose-end fittings can be attached
to the hoses a couple of ways.
The cheap way is to crimp or swage
them onto the hoses, like the fittings on rubber hoses. The more-expensive
way is to use a two-piece replaceable hose end that captures a portion
of the hose between an inner nipple and a concentric outer socket.
These hose-ends (often referred to generically as "Aeroquip fittings" because
they were invented by the Aeroquip Corporation) are used EVERYWHERE on
aircraft and race cars.
Ok... So what's required for a stainless-steel
brake line to be DOT-approved?
First, I should point out that there
may be lines available that meet all the DOT specs, but are non-approved
only because they haven't been submitted to the DOT for approval.
Manufacturers can't legally say
that their lines are approved - - even if they KNOW that the lines meet
all the DOT specifications -- without actually submittimg them to the DOT.
For that reason, stainless-steel
brake lines can fall into three categories:
"DOT approved" - These lines have
been submitted to and approved by the US Department of Transportation.
"non-approved" - These lines don't
have a DOT approval, either because they don't meet the specs or simply
because they haven't been submitted for testing.
"non-conforming" - These lines are
non-approved (and non- approvable) because they fail to meet the DOT specs.
Ok...
The safety standard that brake hoses
must meet is called Federal Motor Vehicle Safety Standard 106; if you have
a copy of the Code of Federal Regulations handy, it's in Title 49, Volume
5, Subpart B, Section 571.106.
The section that applies to hydraulic
hoses is about six pages long, and it covers everything from labeling requirements
to pressure and temperature testing.
One important thing to note -- this'll
come up later when I explain why the "best" hose assemblies can't be DOT
approved -- is that each of the requirements in the Standard carries the
same weight; if a hose fails to meet ANY requirement, it won't be approved.
Hypothetically, therefore, a hose
which met all the performance specs but was labeled in lowercase letters
(the Standard requires block capitals) would fail to be approved.
Also, some of the features required
by the Standard provide a certain amount of "idiot-proofing", but at the
expense of absolute maximum strength or safety... It's the same sort of
mandated mediocrity that forced Ferrari to replace the stock 5- point safety
harnesses in US-spec F40s with those ridiculous motorized-mouse single
shoulder belts.
Anyway...
Most of the "performance" specs
in the Standard (i.e., burst strength, compatibility with brake fluids,
tensile strength, expansion under pressure, etc.) are easily met by all
halfway- decent hydraulic brake hoses, but there are a couple of tests
and requirements that are particularly difficult for stainless- steel hoses
to meet.
Those requirements are:
1. The manner in which
the fittings must be attached to the hose.
FMVSS 106 specifies that "Each hydraulic
brake hose assembly shall have PERMANENTLY ATTACHED brake hose end fittings
which are attached by deformation of the fitting about the hose BY CRIMPING
OR SWAGING." [Emphasis added]
The idea is that, since crimped-on
fittings can't be loosened, a stupid end-user won't be able to screw with
and weaken them.
This is a good thing from a product-liability
point of view, I guess... But it means that any hose assembly which uses
the very best fittings available - - like the nipple-and-cutter Aeroquip
Super Gem or Earl's Speed Seal -- is non-conforming and CAN'T be DOT-approved.
2. The "whip-resistance" test.
This test involves mounting the
hose on a flexing machine, pressurizing it to 235 psi, then running it
at 800 RPM for 35 hours.
When steel-armored hoses were run
through that test, it was found that the hoses tended to bend right at
the junction between the hose and the hose-ends. After a while, the stainless-steel
braid would start to tear, and the broken wires would cut into the inner
Teflon liner, causing it to fail.
One brake-hose manufacturer fought
to modify the whip test, claiming that their stainless-steel hose could
easily comply with the test if only a supplemental support were used during
testing to move the flexing-point away from the hose-ends.
The NHTSA ruled on the issue in
August, 1996, deciding to allow manufacturers to use the supplemental support...
But only on the condition that the same support was used when the hoses
were installed on a real car.
FMVSS 106 was modified to include
the use of the support, and the new rules went into effect in October,
1996.
"DOT-approved" stainless-steel brake
hoses went on sale immediately thereafter.
So... Now that you know the whole
story, you can make an informed decision as to whether you want to put
these things on your street-driven car.
If you decide to install them, you
need to be aware of a few things:
1. When you install them,
you must make SURE that they can't kink, twist, or stretch under any combination
of wheel droop, bump, or (for the front wheels) steer.
2. The stainless-steel outer
braid will cut through anything against which it rubs, so you have to make
sure that the lines don't rub back and forth over anything important.
3. Stainless steel lines have
been known to fail when dirt gets between the outer braid and the Teflon
lining... As the braid moves back and forth, the dirt abrades the Teflon
and can make it rupture. If you look at stainless-steel lines on motorcycles,
you'll see that many of them are encased in plastic tubing, apparently
in an effort to eliminate this problem. The tubing also helps considerably
with the "outer braid cuts through everything" issue mentioned above.
-Andy |
|
Speeding
Tickets |
A number of people have asked me
to post my method for getting out of tickets, so here it is.
First, I should make it clear that
none of this is guaranteed to work for everyone; while I'd enjoy discussing
this message with anyone who has questions or comments, I'll happily ignore
(or, more likely, mercilessly flame) anyone who writes something like "My
buddy did that last month and got a ticket anyway, so you're full of shit."
Second, I should pre-qualify this
advice: I'm relatively young (30 years old), had hair halfway down
my back until about two years ago, and (until I bought the NSX this year)
I drove a succession of sports cars including, for a number of years, a
barely-muffled, no-front-plate, bright-red slantnose Porsche with a roll
cage and 5-point harnesses.
In short, I was a traffic cop's
wet dream.
I've been stopped about three dozen
times in the 14 years I've been driving; for a couple of years, I was being
stopped about once every two months (not including the bi-weekly detainments
at the border-patrol checkpoint between my home and work).
My cars have been searched about
a half-dozen times (on two occasions, the searches took over an hour),
and I've spent more than my share of time standing with feet apart and
hands flat on a police car. Those of you who get stopped once a year
for driving an expensive car in the wrong part of town have NOTHING on
me.
Nevertheless, my insurance company
has ALWAYS rated me as a "Good Driver" (no more than one traffic conviction
in the last three years).
How do I do it? Easy... I
PLAY THE GAME.
You can argue about discriminatory
enforcement until you're blue in the face, you can rant incessantly about
traffic tickets being only a thinly-disguised "tax", you can bad-mouth
the police all you want... But none of that is going to prevent you from
getting tickets or help you avoid convictions.
Here's the thing: Cops are
human. Like all other humans, they make many of their decisions based
on their instincts. This will NEVER change, so if you're going to
drive where there are cops around, you need to respect this basic fact
and do what you can to keep them from making the wrong (or "right", depending
upon your point of view) instinctive assumptions.
To that end, do the following:
Keep your car clean, inside and
out.
If you keep your registration and
insurance information in the glovebox, make sure that it's on top of all
the other crap in there. There are two reasons for this: One, your
glovebox should present the same organized, law-and-order appearance as
the rest of your clean car, and, two, you don't want to be rummaging around
where the cop can't easily see what you're doing. It's especially
important that you not keep your handgun on top of your registration.
Make sure you HAVE a current registration
in the car (and insurance information if your state requires it), and NEVER
drive without your license in your possession.
When you get your registration renewal
each year, don't forget to put the new year-of-expiration stickers on your
plates.
Here's a tip, by the way... After
you apply the stickers to your plates, take a razor-blade or X-Acto knife
and make a dozen-or-so cuts across the stickers. This'll keep lowlife
scumbags from stealing your stickers.
Don't EVER put a bumper-sticker on
your car, and get rid of all window stickers that aren't absolutely required
by law or your parking garage. Sorry, but this means that you can't
proudly display the "Legalize Marijuana" bumper sticker, and the "THGIR
PEEK CIFFART REWOLS" windshield visor has to go.
Don't get a personalized license
plate that says something asinine like "NO55MPH" or "2FAST4U". In
fact, don't get a personalized plate at all.
Put a front plate on your car if
it's required by law.
Throw away the "Sit down, shut up,
and HANG ON!" license-plate frame.
Peel off the window tinting.
Aim your headlights properly and
stop driving with the foglights on all the time.
Replace the Supertrapps with a real
muffler.
Cut your hair.
Make an effort to dress in the manner
that a police officer will associate with someone who belongs in that expensive
car that you're driving.
Buy the best radar detector you
can afford, and use it. If anyone cares, I rate the Valentine One
head and shoulders above all others.
DO NOT advertise the fact that you
have a radar detector and are therefore a compulsive speeder (even if detector
use is legal in your state):
DO NOT mount your detector high
on the windshield with the cord dangling down to the cigarette lighter.
If your detector has a "dark" mode
that blanks the LED display (or, better, an "auto-dark" mode that lights
the display once, then blanks it until the radar source goes away), use
it. You don't need your interior to light up bright-red whenever
a cop triggers his radar gun.
DO NOT mount a non-concealed radar
detector anywhere that makes it impossible to remove surreptitiously.
As soon as you see a cop, you'll want to pull the detector off the dash
or windshield and hide it. DON'T let the cop see you do this (i.e.,
don't wait until he's right on your rear bumper -- or worse, until after
you're stopped -- to hide the thing)... If he sees you reaching under your
seat, the last thing he's going to assume is that you're just hiding a
radar detector.
Finally, if your detector was windshield-mounted,
it's going to leave suction-cup marks after you've removed it. This
is a problem, which is why I recommend mounting it somewhere else.
When pulled over, do everything you
can to put the cop at ease. Remember, he has no idea who you are and will
assume the worst. The less time you force him to stay in his full-combat
mode, the better. To this end, do the following:
When signaled to pull over, do
so slowly and carefully. If you're going 75 when the guy clocks you
from the roadside, he has to drive significantly faster than that to catch
up to you. After a minute or two of full-adrenaline 100-mph pursuit, the
last thing he wants is for you to pull over so quickly that he has to lock
up the brakes trying to stop behind you. Acknowledge his presence
with a wave or something, signal, then pull over to the right shoulder
when it's safe to do so.
Once stopped, turn off the engine
and DON'T MOVE (except to turn on your car's interior light if it's nighttime).
Leave your hands in plain sight on the wheel; DO NOT start reaching into
the glovebox for your registration.
When the cop asks for your license
and registration, tell him that the reg is in the glovebox, let him or
his partner shine his flashlight over there, and ONLY THEN reach for it,
slowly.
If, for whatever reason, you have
a legal reason for keeping a handgun in the glovebox, please try to remember
that the weapon's there BEFORE you reach over, and let the cop know.
After handing over the paperwork,
put your hands back on the wheel. If you're going to try to talk your way
out of the ticket, you'll know when the cop's relaxed enough that you can
safely remove your hands and start gesturing, etc. Until that time,
leave them on the wheel.
If you're in the military, consider
mentioning it.
If you're a firefighter, paramedic,
etc., DEFINITELY let the cop know. In fact, you can break the "no
bumper-stickers" rule if the sticker proclaims your emergency-services
vocation.
DON'T tell the cop, "One more ticket,
and I'll lose my [license/insurance/car/self-respect]." As I mentioned
above, he doesn't need to know that you're a habitual speeder.
DON'T tell him that you weren't
speeding when you both know perfectly well that you were. Opening
the conversation with a lie is unlikely to lead to anything good.
DON'T tell him that your speedo's
broken (especially if it is). In some jurisdictions, evidence that your
speedometer was miscalibrated will get the ticket dismissed, but not if
you already knew about it and should have been compensating.
NEVER EVER say, "See you in court."
Reasons for this will be given below.
Smile.
Ok...
Everything so far has been pretty
basic, but now it gets a little more involved. Following all the
directions above will reduce the likelihood of your getting stopped in
the first place, but if you regularly speed, you should still expect to
be periodically stopped.
Let's say you're stopped for driving
75 MPH in a 55-MPH zone. There are four possible outcomes; you get
to decide which one you want to achieve:
1. You get the full 75-in-a-55
ticket, have no chance of successfully fighting it, possibly get ticketed
for numerous equipment violations, and piss the cop off enough that he'll
remember you the next time he sees you driving through his neighborhood.
2. You get the full 75-in-a-55
ticket, but have a good chance of fighting it in court.
3. You get a "reduced" 65-in-a-55
ticket, with no chance of beating it in court.
4. You get no ticket at all.
Ok... Let's do the easy ones first.
OUTCOME #1 (The Full Catastrophe):
This is the simplest of all.
All you have to do is curse at the cop, ask why he's not out catching criminals,
tell him that you're going to fight the ticket all the way to the Supreme
Court if necessary, demand that he hurry up because you have someplace
IMPORTANT to go, or make smartass comments about his inability to afford
a car like yours.
If you really want to do this with
STYLE, I recommend the following responses to the question, "Do you know
how fast you were going, son?":
1. No... But I bet you're
going to tell me, pig.
2. Hell, no... I'm too drunk
to see the speedometer.
3. Maybe. Have you
stopped beating your wife?
4. Not fast enough, I guess,
since you caught me.
or my favorite all-purpose response
to ANY question from a cop:
5. You'll be dead before
your weapon clears leather.
But I digress.
OUTCOME #2 (The Big Ticket, with
a chance of beating it in court):
This is also trivially easy, but
ONLY if you can keep your mouth shut. To get the ticket without jeopardizing
your chances in court, simply say nothing.
The cop's done this about a zillion
times, and he can handle the details without any input from you.
He'll ask for your license and registration, take them and walk away, come
back with the ticket, give you the obligatory "By signing, you're not admitting
guilt" speech, hand you your paperwork, and wish you a nice day.
If you're aiming for Outcome #2
and he asks the "Do you know how fast" question, the only correct answer
is "Hmm." When he follows up with "Why are you in such a hurry",
you have two choices: Either re-use the "Hmm" answer or simply state
"I was in no hurry." It's CRITICALLY important that you not make
any admission of guilt.
OUTCOME #3 (The "Reduced" Ticket,
with no chance of fighting it):
This one isn't much harder than
#1 or #2: Smile, admit to speeding, but claim that you were going
only 65, not 75. Since the cop now has an admission of guilt, and
so knows that you won't take a 65-mph ticket to court (you'd be a fool
to fight after this admission), he'll "do you a favor" by writing the ticket
for 65 instead of 75. This works nearly all the time.
Which brings us to...
OUTCOME #4 (No Ticket At All)
Outcome #4 is, obviously, the most
desirable, but is hard to achieve.
In order to get out of the ticket
entirely, you need to give the peace officer a reason NOT to write the
ticket. THIS IS A CRUCIAL POINT; the reason my technique for Outcome
#2 works so well is that, in the absence of any good reason to do otherwise,
the cop WILL write the ticket.
To talk your way out of the ticket,
you need to "short-circuit" the cop's usual routine and snap him out of
his ticket-writing "program".
Little things count for a lot.
For instance, something as simple as noticing the insignia on his uniform
and calling him "Sarge" (if appropriate) instead of "Officer" or "Sir"
may help enormously. There's a little name-plate on his chest; read
it and address him like a human being. Hardly anyone does this, so he'll
appreciate it if you do.
The key thing to remember is that
you have to TALK to the guy... Remember, most people that he stops just
sit in their cars and stare blankly ahead, or make a big show about the
fact that he's wasting their time, or just make lame attempts at lying
about their speed.
You need to do something different.
I'm not going to give a long laundry-list
of excuses (e.g., "I really need to pee, so I was driving fast to get to
a restroom", "My wife's having a baby and I need to get to the hospital
fast", etc.). Those excuses rarely work, and besides, I'm writing about
strategic techniques rather than simple tactics.
Here are some things you can try.
Again, realize that I'm listing these only to explain what I mean by "short-circuiting
the cop's usual routine"... None of these is guaranteed, in itself, to
get you out of a ticket, and I'm sure you can think of other strategies:
A. Get out of the car.
This is DEFINITELY the wrong thing
to do here in California (especially on the freeway; try it and you'll
get a VERY sharp "Sir! Get BACK in your car!" over the PA, followed
by a long lecture on pedestrian safety), but it might be ok in smaller,
quieter communities.
By nullifying the psychological
advantage the cop has when he looks down at you through the window of your
car, you've already changed some of the ground rules.
B. If you're a woman, cry.
There's a caveat, though... If all
you can manage is a couple of tears and a sniffle, don't bother.
You're not trying for sympathy here (the cop has heard it all before and
isn't likely to feel sorry for you), but for SURPRISE. What you want
is to startle him out of his routine, so you need to get close to all-out
bawling.
Come to think of it, if you're a
man, crying will surprise him, too... Try it and let me know what happens.
C. Start babbling about
anything EXCEPT the fact that you know he's about to write you a ticket.
Ask for directions, start explaining
how you're on the way to the airport to pick up your mother-in-law but
got lost at the last freeway interchange, you think you should've stayed
on the I-5 instead of getting on I-805, etc.
If you have the balls to preface
this with, "Oh, Officer, I'm SO glad you're here... Look, here's my problem....,"
so much the better.
What you're striving for is for
the cop to finally say, "Stop! Enough!" If he then gives you the
directions you asked for, you're home free. When he mentions that
you should drive a little more slowly in the future, be sure to thank him
and wave as you drive off.
That last one, by the way, worked PERFECTLY
when some friends and I were doing impromptu skidpad testing at 2 a.m.
on the tarmac at Jeffco Airport, just outside Denver. There we were,
hootin' and hollerin' and driving around in big tire-screeching circles
next to the runway, when a cop drives up and wants to know what the hell
we think we're doing.
I babbled for what seemed like hours...
Explained, circuitously, that we'd gotten lost while looking for the back
road to Boulder, we didn't know where we were, couldn't figure out how
to get out of the airport, it was dark and our girlfriends were starting
to get scared, etc. He finally just sighed and escorted us back to
the road.
Here's the best example I've ever
seen of short-circuiting a cop's routine:
It's lunchtime, and Mario (not
his real name), a Porsche salesman, invites a customer (I'm not saying
it was me) to lunch. Mario takes a new 928 with dealer plates off the lot
and is driving down the Coast Highway like a fucking bat out of hell. 90
in a 45, easy.
Lights. Siren.
Mario pulls over and tells his passenger,
"You're the salesman and I'm the customer, ok? I'll do all the talking."
He then leaps out of the car and
runs back to the black-and-white. Grinning like the fool that he
is, he says, "Did you SEE how fast I was going?!! Man, that car's
quick! I bet your radar gun doesn't even GO that high! That
guy [gesturing wildly at the alleged salesman in the car, who's convinced
that they're BOTH going to jail] thinks he's gonna sell me this car, but
there's NO WAY! If I had a car like this, I'd be getting speeding
tickets every DAY!"
No ticket.
Kids, don't try this at home.
"Mario" is a guy who's capable of convincing otherwise-rational people
to spend $100,000 on a car; he's not LIKE the rest of us. Still,
it's a good story.
Ok... Enough about avoiding tickets.
Now let's talk about what to do once you DO get one.
I recently wrote that I think of
traffic fines as simply one of the costs of driving. This doesn't
mean, however, that I advocate giving up and simply mailing the fine to
the Court.
On the contrary, I believe that
it's my OBLIGATION to fight every ticket. In this country, the State
is required to PROVE that I'm guilty; I have no problem justifying a decision
to make them do so, even if I "know" that I "deserved" the ticket.
Actively fighting the ticket does
six good things:
1. It makes you a more-informed
driver, since you'll probably have to research the Vehicle Code in order
to mount a reasonable defense.
2. It adds to the congestion
in the traffic courts. If EVERYONE fought his tickets, the traffic
courts would become so overburdened that they wouldn't be able to function.
This could lead to a rethinking of the whole system and, perhaps, to some
positive change.
3. It assures you that, win
or lose, you did the best you could... If you have to pay a fine, at least
you know you didn't go down without a fight.
4. Even if you lose, you have
a good chance of getting off with a reduced fine.
5. Fighting every little ticket
is good practice for fighting the really BIG ones.
6. In court, you get to see
how the other half lives... After hearing the charges against some of those
guys, you'll feel much better about the minor offense that YOU'RE accused
of.
If you win, you achieve four admirable
goals:
1. You don't have to pay
the fine. In most cases, this is pretty minor compared to the next
one.
2. Your insurance rates don't
rise.
3. No conviction is recorded
on your driving record, so when you get ANOTHER ticket, the Court won't
see that you're a repeat offender.
4. It makes you feel good
for weeks.
If you want to have any chance at all
of victory in the courtroom, you need to take the first few steps at the
time of the traffic stop. What you say and do at that instant is REAL IMPORTANT.
Unfortunately, the method I described
for getting out of the ticket entirely (Outcome #4) is often counter-productive
if you want to be able to fight the ticket later.
Specifically, making the event memorable
for the cop will do you no good later, when you're in court... What you
want in court is a cop who can't remember the circumstances of the traffic
stop, who has no notes, and who therefore can't answer even the simplest
questions when you get a chance to cross-examine him.
When you're pulled over, therefore,
you have to CHOOSE whether you're going to take the safe fight-the-inevitable-ticket-later
route, or shoot the moon and try to get out of the ticket entirely. You
can't
really switch horses midstream here.
Ok... Let's assume that you've decided
to accept the ticket, but you want to make a conviction as unlikely as
possible. Here's what you do:
DO NOT admit guilt, even indirectly.
I said this before, but it bears repeating. Cops have a lot of practice
eliciting casual confessions from motorists... Witness the "Do you know
how fast you were going?" question: To answer "Yes" when he KNOWS
you were speeding implies guilt, while to answer "No" implies that you
were driving so fast or carelessly that you weren't even glancing at your
speedometer, and it also negates your ability to offer convincing testimony
as to your actual speed once you're in court.
This is why the ONLY correct answer
to this question is no answer at all.
Answering "No", by the way, is also
INVARIABLY a lie; EVERYONE's first reaction upon seeing the flashing lights
in his rearview mirror is to look down at the speedo.
Oh... And while we're on the subject
of eliciting confessions, do you know WHY cops ask suspected drunk drivers
to recite the alphabet backwards?
I swear to God this is true:
A huge percentage of drunk drivers respond with, "What?!! I can't
even do that when I'm sober!"
Act as "normal" as you can.
Do what 90% of people do when they're stopped: Sit quietly, be polite,
don't try to crack jokes... Just follow directions and accept the ticket
quietly. The idea here is to lull the cop into believing that, like nearly
all people who receive tickets, you'll just mail the fine to the court.
To further reinforce that false
sense of security, you might even ask the cop to explain the procedure
for mailing the fine... This'll strengthen his belief that you've already
given up, and he'll instantly forget you. If you're lucky, he won't
even write any notes about the incident when he gets back in his car.
This is why you NEVER want to say
"See you in court"; the last thing you want to do is warn him to start
preparing his case now by taking detailed notes.
Speaking of which... As soon as
possible after getting your ticket, sit down and make your OWN detailed
notes about the event. Be sure to write down ALL the relevant information,
including time, date, weather, traffic conditions, the PRECISE location
where you were stopped, etc.
After you've received a ticket,
you can either get a lawyer or fight it yourself. This is your decision,
but I've only used a lawyer when I was accused of misdemeanors like Speed
Contest or Exhibition of Speed.
Drunk driving, of course, is a misdemeanor
(or felony) as well... But if you're driving drunk and anything I've said
here helps you get out of the ticket, you had better not tell me; the offense
is inexcusable and I will NOT be happy to have assisted you.
By the way... For those of you who
remember my recent holier-than-thou rant about appropriate driving behavior
on city streets, those Speed Contest and Exhibition of Speed charges against
me were bogus and never even went to trial.
Ok... Let's assume, because there's
really nothing to say about the alternative, that you decide to fight the
ticket yourself.
I only have experience with the
traffic-court system in two states: California and Colorado. The
procedures in your area may vary; in those states (although my last ticket
in Colorado was over ten years ago, I don't think the process has changed),
it works like this:
On your ticket (which is technically
a "Summons To Appear"), there's a court date. This is for your "arraignment"
-- the initial appearance at which you either plead guilty or not guilty.
Some charges REQUIRE you to appear
at the arraignment; others can be handled by simply mailing payment of
the fine.
If you decide to mail payment of
the fine to the court before your arraignment date, what you're technically
doing is posting bail for your appearance. When you then fail to
appear at the arraignment, your bail is forfeited, you're declared guilty
as charged, and the bail money pays the fine.
We're not interested in giving up
that easily, though, so WE are going to appear at the arraignment.
Here's where the various states' procedures start to vary.
In Colorado (and some parts of California),
traffic cases are heard by real judges in real courts, and they're tried
by real District Attorneys (well, ASSISTANT District Attorneys... Same
thing). The process works like this:
You show up at the date and time
specified on the ticket. After a long wait, you get a chance to discuss
your case with the prosecutor who's been assigned to it. He'll take
you aside, glance through your file, and ask you to briefly relate your
version of the events that led to your being ticketed.
So long as you don't say anything
really stupid, he'll quickly offer you a plea bargain... That is, he'll
give you the opportunity to plead guilty to a lesser charge in order to
avoid having to try you for the offense on your ticket.
Try real hard to get him to agree
to an equipment-violation plea; in many areas, convictions for "defective
lighting" don't adversely affect your insurance costs. If he offers
a plea like that, take it, go back into the courtroom, and plead guilty
to it... You've won.
It pays to keep in mind, during
the plea-bargain process, that most real judges don't want to waste their
time trying petty infractions like speeding tickets, and they aren't fond
of ADAs who can't plead those offenses out of their courtrooms. You
have a fair amount of leverage, therefore, in determining the final plea-bargain
arrangement.
If you feel that you have an ironclad
case, or if you and the prosecutor can't come to an agreement, you refuse
the plea-bargain, go back into the courtroom, and plead "Not Guilty".
You'll be asked whether you want
to "waive time"... This translates to "Do you want to waive your Constitutional
right to a speedy trial (defined in most jurisdictions as 'within 45 days')?"
Answer "Yes"; the courts aren't
yet crowded enough that they won't be able to fit you into their schedule,
and the longer you can wait before the cop appears in court as a witness
against you, the better... His memory will fade, he may lose his notes,
and -- you can always hope -- he might die, move away, be convicted of
a serious crime, or quit the force before your case comes up.
The Clerk of the Court will pick
a trial date. Write it down, go home, and prepare for your trial.
You'll usually have 60 days or more, but don't forget about your trial
date... If you miss it, the Court will issue a bench warrant for your arrest
and you'll be hating life from then on.
Ok... In many parts of California,
the process is essentially as I've described above, except that traffic
cases (except for misdemeanors, which may be heard by real judges) are
heard by "Traffic Commisioners" and there ARE no District Attorneys in
traffic court, so there's no opportunity for a plea-bargain.
In those areas, you're arraigned
in a lightning-fast process that involves choosing one of three pleas:
"Guilty", "Not Guilty", or "Guilty with an Explanation".
[Actually, I've always wanted to
try pleading "Not Guilty by Reason of Insanity", but I don't have the balls.
I'm offering $100 to anyone who does, though.]
Anyway... Pleading "Guilty with an
Explanation" is the dumbest possible thing you can do. If you HAVE
a good explanation, the time to give it is AT TRIAL, when you can use it
to defend yourself against the charges. If you only have a STUPID
explanation, like "Uhh... I didn't think I was really going THAT fast,"
the Court will listen more-or-less-politely, then bang his gavel, accept
your guilty plea, and sentence you to pay the entire fine. Congratulations...
You've achieved nothing, and you've wasted your time doing it.
The proper plea is "Not Guilty".
Again, don't worry if you don't think you have a defense... It's the State's
job to PROVE that you're guilty, and even in a state like California, where
the traffic-court system is skewed WILDLY in favor of the prosecution,
you can still have a chance of beating the ticket even if you're unprepared
to present any defense at all.
After pleading "Not Guilty", the
process is the same as in the "real" courts: You waive time and get
a trial date from the Clerk.
If you live in California:
After getting a trial date, go
to your local bookstore and buy a copy of "Fight Your Ticket", published
by Nolo Press. I'd lend you my copy, but I lent it to a so-called
friend about a year ago and he hasn't yet returned it.
Read the book carefully; you may
find that you really DO have a defense. If nothing else, you'll learn
a lot about the traffic rules and traffic courts in your area.
If this is the first ticket you've
contested, take a day off of work some time before your trial and visit
the courtroom. Spend an hour or two there to get an idea of how everything
works. If possible, spend your time in the courtroom of the particular
judge who'll be hearing your case.
You should also know ahead of time
whether traffic trials in your area are prosecuted by a District Attorney
or not... In the "Traffic Commissioner" courts here in California, there's
no DA even at trial; it works more like small-claims court: You and
the cop simply stand before the judge and give testimony.
The nice thing about this arrangement
is that the cop MUST testify, so you're free to cross-examine him.
You, on the other hand, need NOT testify, so you're not exposed to cross-examination
by an experienced prosecutor.
Since the "Fight Your Ticket" book
goes into a lot of detail, I won't mention much about what to do when you
go to trial; for specific information on what constitutes a defense against
the various infractions (especially radar speeding tickets), read "Fight
Your Ticket".
Here are some general guidelines,
though:
Dress conservatively, as though
you're going to a job interview. If you're a guy and have been thinking
about cutting off your ponytail, now's the time. DON'T wear a T-shirt
that proclaims "Justice is Blind".
If you're going to present a defense,
bring lots of WRITTEN documentation. Most traffic-court defendants
show up with nothing tangible, and they lose. YOU want to have maps,
diagrams, copies of the appropriae sections of the Vehicle Code, references
to legal precedents, etc. Make three copies (one each for you, the
prosecution, and the judge), and keep everything organized... You want
to project an air of confidence; fumbling through a stack of papers won't
do this.
DON'T bring a copy of "Fight Your
Ticket" to court.
PRACTICE whatever it is that you're
going to say in court. As I said, you'll have a month or two between
the arraignment and the trial; with that much time to prepare, you should
sound like Clarence Darrow once you get there.
If you'll be demonstrating the sequence
of events that led to your stop, practice THAT at home, too. Many
courtrooms have a whiteboard and magnetized car-symbols that you can use
for your demonstrations, but some don't, so bring clear diagrams with you.
LISTEN CAREFULLY to the police officer's
testimony... While you should already have a general idea of what you're
going to say and what you'll ask him when it's your turn to cross-examine,
don't limit yourself.
When you cross-examine the police
officer, walk him step-by-step through all the facts that you wrote down
in your post-ticket note-taking session. Be prepared to fully explore
any areas where his testimony is inaccurate or vague... If you can show
that he has no real recollection of the events, or if you can get him to
admit that portions of his opening statement were inaccurate, you're well
on your way to winning your case.
BE POLITE. Call the Judge
"Your Honor" and call everyone else "Sir" or "Ma'am". Again, referring
to the cop by name can pay dividends... It shows that you're not treating
him as a nameless, faceless entity; if you're lucky, he and the judge will
treat you with the same respect.
Although I've stressed that you
should be well-prepared, this doesn't extend to typing out a "speech" and
just reading it to the Court. It might help to make up a list of
questions that you really want to make SURE to ask the cop, but try to
simply refer to that list every once in a while, rather than droning on
and on through them with practically no regard for the answers.
In your closing statement, clearly
summarize your case AND TELL THE COURT WHAT YOU WANT. If you think
the cop's testimony shows that maybe he CAN'T prove that you were breaking
the law, you need to point this out to the judge and ask that the charges
be dropped as a result.
I mentioned that you can often win
your case even if you don't really have a defense. Listening to the
cop and asking probing questions in order to prove that his testimony isn't
credible is one way.
The other way is if the cop doesn't
appear at your trial. The odds of his being a no-show vary from locale
to locale, but most times I've been in court, about a quarter of the cases
on the docket are dismissed because the cop didn't appear.
Even if you DO lose your case, the
judge may reduce the fine below the amount shown on your ticket.
Also (here in California, at least),
you can be sentenced to Traffic School if you haven't attended one in the
last eighteen months. This is a Very Good Thing... Upon completion of th
eight-hour session, the charges are dismissed and there is NO ADVERSE AFFECT
on your insurance. To attend, you need to pay the fine plus $24 to
the court and whatever the Traffic School charges (they're all privately-operated;
it usually costs between $20 and $50), but this is small change compared
to the increase in insurance rates that you'll experience if you DON'T
go to Traffic School.
By the way, this is ANOTHER reason
to fight every ticket... Every time you DON'T contest your ticket and instead
just choose to plead guilty and go to Traffic School, you have to wait
another eighteen months before you can go again.
Here in California, you get to choose
which Traffic School you want to attend.
The truly clueless go to the ones
run by civic agencies or the Auto Club or whatever... They get to spend
eight hours watching "Red Asphalt" and listening to an ex-Highway Patrolman
drone monotonously about the dangers of speeding.
Those of us who are a little more
savvy choose the "Comedy" traffic schools... These are taught by more-or-less-professional
stand-up comics who quickly dispense with the state's minimum requirements
(informing the students of a few traffic laws and the penalties for drunk
driving), then get on to the serious business of making everyone in the
room laugh for half a day.
There are also "fine dining" traffic
schools taught in restaurants, "singles" schools, "wash and drive" schools
held in laundromats, schools specifically for gays and lesbians, etc.
And... In California, you can now
"attend" home-study or online, web-based traffic schools. Is that cool,
or what?
-Andy |
|
"Say it in Code" vs.
"Say it in Comments" |
Each of us can undoubtedly come
up with some example assembly-language code that can't be fully documented
without explicit comments. What, for example, do you suppose the
following useful bit of code does? (No fair going back through the archives
to find my original message where the code was posted with 41(!) lines
of comments documenting it):
WAITFOR0:
BTFSC TMR0,BIT7
GOTO WAITFOR0
BTFSS TMR0,BIT0
GOTO $+1
GOTO $+1
BTFSS TMR0,BIT1
GOTO $+1
GOTO $+1
MOVLW RELOAD+4
MOVWF TMR0
On the other hand, it's just as easy
to find "well-commented" code that's impossible to maintain or modify.
I just finished a 16C57 program that I took over from a guy who'd been
arrested and incarcerated after writing "95%" of it... At first glance,
it APPEARED to be well-written (non-trivial comments on every line, constants
that all had names, etc.), but when I started looking closely, I found
some truly HIDEOUS coding practices:
1. Important variables named
"c1", "c2", "c3", etc.
2. A subroutine named "SndTimer",
which loaded a variable called "Snd_Timer" with a constant called "Snd_Time".
3. Long ( > 20 line) loops
terminated with "GOTO $-23".
4. Very explicit, well-phrased
comments that gave detailed information about every important detail of
the often-tricky code... And which had unfortunately not been updated when
the code had, so were now WRONG.
I think that what it comes down to
is this:
The best results will be achieved
when you document BOTH in code AND in comments... And until you get a really
good feel for it, one good way to ensure that you're being as clear as
possible is to do EACH half of the documentation AS THOUGH the other half
doesn't exist.
One of the BEST things you can do
to promote maintainability of your code is to include descriptive "header"
comments (i.e, comments on lines of their own) that describe the operation
of the code that follows.
The reason's simple: Often,
even very short sections of code can perform VERY important functions that
CAN'T be adequately described in short line-by-line comments. The
following excerpt from an automotive ignition-controller that I wrote a
couple of years ago demonstrates this:
; WAIT FOR A SIGNAL FROM THE
POINTS BEFORE ATTEMPTING TO
; CHARGE THE CAPS FOR THE FIRST
TIME. WITHOUT THIS SECTION
; OF CODE, WE'D GET TO THE
JUST-IN-TIME CHARGING SECTION AND
; START CHARGING THE CAPS WHETHER
OR NOT THE DISTRIBUTOR'S
; TURNING. THIS WOULDN'T NORMALLY
BE A PROBLEM, BUT THERE
; ARE SITUATIONS HAVING TO
DO WITH SWITCH-BOUNCE ON THE
; KEYWIRE LINE THAT CAN FORCE
US TO RESTART THE PROGRAM WHILE
; THE PIC'S POWER SUPPLY IS
SLOWLY DISCHARGING. WHEN THIS
; RESTART HAPPENS AND THE PIC
TRIES TO CHARGE THE CAPS,
; ENOUGH CURRENT IS DRAWN THAT
THE PIC'S POWER SUPPLY DROOPS,
; CAUSING ERRATIC OPERATION
AND POSSIBLE LOCK-UP DURING THE
; POWER-DOWN SEQUENCE.
;
; NOTE THAT THE INTERRUPTS
ARE ENABLED AT THIS POINT, SO
; AUTO-OFF WILL WORK PROPERLY
IF NO POINTS SIGNALS ARE SEEN
; BEFORE THE AUTO-OFF TIMER
EXPIRES.
BSF
KILLENG ;MAKE SURE THAT WE DON'T MAKE ANY
;TIMING CALCULATIONS BASED ON THIS
;FIRST POINTS SIGNAL.
WAIT41ST:
CLRWDT
;RESET THE WATCHDOG TIMER.
BTFSS FIRED
;IF WE'VE SEEN A POINTS SIGNAL,
;SKIP AHEAD.
GOTO WAIT41ST
;OTHERWISE, LOOP BACK AND KEEP
;WAITING.
Without the header comments, all that
anyone would see is a very standard "wait for a port pin to go high" loop...
The loop looks JUST LIKE any number of similar loops in this program and
others, so without the headers, there's no way that a future maintainer
of this code would know the purpose of the loop.
Even if he DID beat the astronomical
odds and manage to figure out the reason for the loop, he probably wouldn't
realize that/why it's important for interrupts to be enabled during its
execution.
And... By including large comment
headers like this, you help him in two other ways:
1. You give him a general
sense of confidence in your abilities, so that when he's trying to fix
a problem, his first assumption won't be that you were incompetent... If
he sees some code that at first appears wrong, he'll tend to think "Hmm...
I KNOW that Andy must have had a good reason for doing it that way; maybe
I should look more closely before hacking up his code."
This is vastly preferable to the
alternative, in which he assumes that I'm an idiot and always worries that
any change he makes will upset some delicate, brittle code that just barely
works.
2. You explain to him every
important decision/discovery you made while writing the code. Even
if he was in on the program-specification and design-review meetings, there
are always any number of little details that never get discussed... And
after the passage of time, even the BIG details are often forgotten.
By putting detailed header comments in the code, you can remind him of
all of them.
Keep in mind that the "maintainer"
of your code may very well be YOU. Have you ever gone back to five-year-old
code and started rewriting large sections of it because it contains "obvious"
inefficiencies or mistakes, only to notice after a few hours of work that
there really WAS a reason for doing it that way in the first place?
Me, too. And I didn't like
it, so now I put giant comment blocks in my code.
-Andy |
|
Automotive Fire
Extinguishers
I've been in three car fires.
Two were relatively minor, but one was REAL scary... It progressed from
a minor electrical short in the dash to a full-blown conflagration in less
than thirty seconds, and the car BURNED TO THE GROUND in about two minutes.
That fire is the reason that
I carry fire-extinguishers in my cars. YOU should carry one, too.
Don't think that you're safe
from fire just because you don't drive your car at the track... Or that
it can't happen to you because your car is modern, well-maintained, and
unmodified. That big fire of mine happened on the street, in my uncle's
brand-new Ford sedan.
UPDATE -- 10 MAY 2000:
Driving northbound on I-805
this morning in my NSX, I saw another NSX parked on the southbound side
of the highway with smoke billowing out of its open engine hatch. No visible
flames; it just looked as though a hose had burst and dumped oil on the
exhaust or something. The driver was safely out of the vehicle, so I didn't
risk my life running across 8 lines of traffic to spray halon on his car;
instead, I turned around at the next opportunity and took this photo (click
on the small image to see a much larger version).
Elapsed time between seeing smoke
and seeing the fire above: Approximately five minutes. After snapping that
photo, I turned around again and took THIS one about three minutes later:
As you can see, the car was by
then fully engulfed. Elapsed time from first smoke to a total loss:
less than ten minutes.
Don't let this happen to you.
|
There are two kinds of fire-extinguishers
that are marketed for use in automobiles... There are the "dry-powder"
extinguishers, which can be purchased very cheaply from any hardware store,
and Halon extinguishers, which are harder to find and expensive.
If you already carry a dry-powder
extinguisher in your car, pat yourself on the back for being so safety-conscious,
then throw it out and go buy a Halon extinguisher... Dry powder's great
for the kitchen, but PLEASE don't use it in your car if you can help it.
The deal is this: The old-style
dry powder will DESTROY aluminum or magnesium. It also eats through
electrical insulation and will probably damage most plastic components.
Some modern dry powders (one has
the brand-name "Purple-K") are less corrosive than the old stuff.
Nevertheless, it's STILL a bad idea to use them, since the powder is FOREVER,
and it gets EVERYWHERE.
Words cannot describe the extent
of the damage you'll do... Unless you've seen the results of a dry-powder
extinguisher activation inside a car, you wouldn't believe it.
My advice to anyone who's discharged
a dry-powder extinguisher in his car (or in the car's engine compartment),
is, "Sell it THIS INSTANT, before the powder COMPLETELY dissolves your
car. Take whatever you can get and cut your losses."
It's IMPOSSIBLE to clean that stuff
up; it'll get into electrical connectors, gauge movements, switches, your
stereo, air vents, etc. Needless to say, it's unlikely to do
much good in ANY of those locations.
With a burning-but-insured car in
front of me and only a dry-powder extinguisher at hand, I'd be VERY ambivalent
about discharging it.
Now...
There are two big problems with
useful Halon extinguishers.
First, they're physically large.
The 5-pound bottle in my car -- 5 pounds of Halon; the whole extinguisher
weighs about 12 pounds -- is a 15-inch-long, 6-inch diameter cylinder that
doesn't really fit anywhere.
Second, they're expensive.
A 2.5-pound handheld bottle (5-B:C) costs around $100, and you'll pay over
$300 to fill an 11-pound bottle.
However... You're not going to find
anything that works as well as Halon, so you just have to deal with those
issues.
To be fair, I guess I should mention
that Halon's biggest advantage (the fact that it dissipates after it's
done its job, so you don't have to sell your car after you've put out a
fire) can also be a DISADVANTAGE in one particular situation:
If the fire's being fed from a renewable
source (like oil draining or being pumped onto an exhaust pipe), it may
flare up after being "extinguished", requiring repeated blasts of Halon.
You may have seen this on television... I remember seeing a crash last
year in which a track worker used up bottle after bottle of Halon trying
to keep an oil fire down.
Here's the thing, though:
The fires you're likely to see are going to be (at first, anyway) very
small electrical ones, not huge petroleum-fed infernos. Halon's the
best possible extinguisher for these small fires; its extinguishing capability
in an enclosed space is -- please excuse my exuberance -- fucking MIRACULOUS.
If I were a track worker faced with
an unconscious driver trapped in a burning car, Halon dissipation might
be an issue. I'm not, though... The extinguisher in my car will only
be used by ME, so I'll presumably be conscious and mobile when I activate
it. In that situation, five pounds of Halon is sufficient to get
me out of the car safely. If the fire flares up again... Well, that's
what insurance is for.
Also, Halon in an enclosed or semi-enclosed
space isn't directional; if you have a fire somewhere under the dash or
behind some other obstruction, you can still put it out. Since most
cockpit fires start this way, Halon is really the best choice.
By the way, those little 12-ounce
Halon extinguishers are basically toys... I carry at least one of them
in each of my cars, but only as a means of extinguishing VERY small fires
-- like from a cigarette ash on the carpet or something. One of my
three fires started exactly that way, and if I'd had one of those little
extinguishers at the time (or even a can of Diet Coke that I could have
poured on it), I might still have that car.
-Andy |
|
India's Recent Nuclear Tests
In early May, 1998, India tested a nuclear device for
the first time since 1974. An Indian engineer -- not involved, as
far as I know, in India's nuclear program -- posted a message in which
he attempted to justify those tests.
This is my response (excerpts from his message are
in blue). |
1. US is the only nation, thus
far, to have used the N-weapons.
Correct... And the US has also AVOIDED using its nuclear
weapons for more years than any other country.
2. Maximum number of N-tests were
conducted (and are still being conducted) by US, a whooping 1200 odd tests
have been conducted thus far by the Yankees, followed by the erstwhile
soviet (700) and China (140+).
Your information is a little inaccurate...
The US is no longer testing nuclear weapons. Before
the Comprehensive Test-Ban Treaty was signed in 1996, the US had conducted
1,030 tests, the USSR had performed 715, and China had performed only 43.
The other two declared nuclear powers, France and Great
Britain, have performed 210 and 45 tests, respectively.
South Africa and Israel may have conducted a single joint
test in the south Atlantic in 1979, and your country has performed three
(or is it four now?): One in 1974 and two or three this week.
3. US is the only agressor in the
world, in today's world; it stages wars and proxy wars - never for its
country nor to defend it. It enjoys wars.
I don't even know what to say to this.
It can assume mantle to strom the
Iraqi deserts, for and on behalf of Kuwait. They do not even need an invitation
to do that!
1. The US only acted after the UN authorized the
use of force through Security Council Resolution 687.
2. The US obtained permission from Saudi Arabia
to base its forces in that country.
3. Even though Inder Kumar Gujral, your Foreign
Minister at the time, publicly EMBRACED Saddam Hussein after Iraq's invasion
of Kuwait, India eventually cooperated with the US-led liberation of Kuwait
by allowing US warplanes to refuel in Bombay on their way to the Gulf.
4. During your country's two-year membership in
the Security Council after the Gulf War, it hardly ever voted against the
US on any question relating to sanctions and other actions against Iraq.
4. None of the so called test ban
and non-proliferation treaties proposed by US talk about dismantling of
US N-warheads!
The START I and START II treaties require the US and Russia
to reduce their arsenals to approximately 3,000 warheads by the year 2003.
5. US preaches (and practices) "what
is good for americans, is good for the rest of the world".
Well, let's see...
The US attained independence from England; so did India.
The US is the world's largest democracy; India is the
second-largest.
The US is India's largest trading partner.
The US is the single largest foreign investor in India,
accounting for one-third of all foreign investment.
Wouldn't you agree that -- at least in these cases -- what's
good for our country IS good for yours?
The real danger is with the coutries
who have not toiled to get [nuclear weapons], but acquired [them] through
other means.
No. The real dangers are with:
a. Countries whose conventional forces are so (relatively)
weak that their nuclear weapons are the only means at their disposal for
waging war against a strong adversary, and
b. Countries with nuclear weapons AND significant
tension with a neighboring Islamic nation, especially if THAT country has
nuclear weapons, too.
India, of course, falls into both categories.
Tell them that India waited for
about 25 years before the circumstances forced it to go for the second
test. This reluctance on the part of India just indicates that it
did not wish to be seen as an agressor, it never had been one.
NO COUNTRY can be an aggressor until it has powerful,
reliable weapons... But that really isn't the point.
Earlier, you mentioned that the US led the operation that
resulted in the evacuation of Iraq from Kuwait.
Don't you think that -- before this week's round of nuclear
tests, anyway -- India could have relied on the same assistance from the
US (and the UN) in the event that it was invaded or attacked by Pakistan,
China, or some other country?
Maybe I'm missing something, but it seems to me that the
recent tests can only weaken the relationships between India and its potential
allies... Which will INCREASE India's willingness to use its nuclear weapons
early in any conflict, since it may no longer be able to count on the unconditional
support of the rest of the world in the event of war.
And... How is ANY action that would tend to start an arms
race in your region good for India? Would you be HAPPY to see nuclear-tipped
Prithvi and M-11 missiles pointing at each other over the India-Pakistan
border?
Last, but not least, if anyone is
not willing to look into the ground realities ask them to shut and ponder
about the consequences of 1200 odd tests by the US. If 1200+ cannot
harm the earthlings, a mere 4 tests can never do that.
Right, but the worldwide concern over India's recent tests
has very little to do with the ENVIRONMENTAL consequences of that testing.
I am planning to follow this posting
with another one on "India should now sign the CTBT and NPT"
I can't wait.
-Andy |
|
go to the SiliconValley
GeoPage
© aw 1998.
All rights
reserved. Last
modified: 12 Nov 1999 |