|
Welcome to the Teton Multimedia learning center... where you actually have to learn something along with
your lingo and coding. Math, physics, numerical methods, programming techniques, and other fun stuff.
We help you learn
to code your own, rather than hunt-and-peck around the web looking for someone else's
programming or behavior that might do the job part of the time.
Our content is steadily growing, and we add more as time permits.
We welcome suggestions and requests, and we invite you to contact us at your convenience.
Commentary / Blasphemy
Backward Compatibility (November '05)
In case ya'll didn't know, before transmogrifying into a web geek, I was a nuclear engineer. Yep, a nuclear
engineer. I did safety analysis and wrote safety analysis codes. These codes underwent RIGOROUS scrutiny and
quality assurance because... they absolutely had to work correctly. Interesting, they also had to CONTINUE to
work correctly, AND if a particular set of input was used to run the code in 1975 and then in 2005, both runs
must give EXACTLY the same answer regardless of how many code revisions and upgrades have taken place.
Why must the two answers be identical? Well, if the answer was correct in 1975, then it darn well better STILL be
correct in 2005. Otherwise, it's like saying 2+2=4 one year, and 2+2=5 the next year. This means that the code
must be backward compatibile for as long as the code is used. In the case of nuclear power plants, this can be
50 years or more. Yes, I know that Microsoft and everybody else thinks all code is trash in 6 months. But in
certain cases where code is put to practical use, rather than for streaming porn, it has to last a lot longer
than 6 months.
Enter the Macromedia folks, who have never heard of backward compatibility. For example, when they decide a particular
ColdFusion tag is doing things "wrong" or needs to be improved, the original version of the tag is retained only
to the extent that it is convenient to Macromedia. Otherwise, anything is fair as far as they're concerned.
For example, going from CF4 to CF5, the CFHTTPPARAM tags were revised so URL parameters were automatically
URL-Encoded. Great, but what about all of us who were already URL-encoding these things? It meant that all
URL parameters were... URL-Encoded twice. So after identifying my Macromedia problem and revising the affected
websites, I was out 10 hours.
So today I was playing with the CFPOP tag for the first time. Did a bunch of programming on my workstation
that has CF-MX. Got everything nice and working. Then uploaded it to the server and... it broke. Why?
Well gosh golly, my CF version is actually CF6 while the server has CF7, and naturally the CFPOP tag isn't
backward compatible. Yes, upon inspection it appears that the new version is in fact better than the old version.
HOWEVER, if I had been using the old version these past several years, suddenly a bunch of my websites would
break when the server was upgraded. Then I'd have to identify the problem and fix a bunch of websites, and
there I've shot another day or two simply because Macromedia is inconsiderate.
This begs the question, "How should they handle this sort of thing?" Well, what we nuclear engineers would do
is we would leave the original tag alone, and add a second tag named CFPOP1. And that's all there is to it.
Yes, it means there's some duplication; however, it saves lots of people lots of headaches and it means that
I and the rest of the world's CF programmers can sleep soundly at night with the comfortable knowledge that
because our code worked perfectly today, it will also work perfectly tomorrow.
But will Macromedia take this sort of advice? Not on your life. I've even gone so far as to "apply" for a
job as head of Macromedia's QA department. However, rather than actually applying, I stated that I was
NOT applying because they obviously have no interest in QA.
So why am I writing this? Well gosh golly, my hope is that these few paragraphs will thin out the web geek
competition. Young web geek wanna-be's will see this, and they will think "Holy crap, no wonder nobody is
doing web development anymore." Then, rather than becoming web geeks, they'll become something much less
frustrating... like counselors for sexaholics addicted to streaming web porn. Then I'll have less competition,
more clients, and a higher hourly rate. And I'll actually be able to thank Macromedia for all the flaming
fire-pokers to my backside.
Commentary Archive
|
 |
Math, Methods, and Lingo Source Code
Beginning Algebra -
Algebra... there really isn't much to it. So why make it difficult?
Multiplying by One -
It's more than you might think. (72 kb)
Dividing by Zero -
Are computers stupid or something? (64 kb)
Degrees and Radians -
What are radians, anyway? (52 kb)
Trig and ArcTangents -
Basic trigonometry, and why does Director have an ArcTan function but no ArcSin or ArcCos? (80 kb)
Spinning Arrow -
The arrow points at the mouse. Degrees and radians are reported. (9 kb zip Dir source)
Bouncing Ball Part 1 -
To fall, a ball needs gravity. (70 kb)
Bouncing Ball Part 2 -
To bounce, a ball must hit the ground. (101 kb)
Bouncing Ball -
D-8 source for bouncing ball. (8 kb zip Dir source)
High-Speed Bouncing -
High-speed collision methods. (82 kb)
High-Speed Bouncing -
D-8 high-speed collision methods in action. (11 kb zip Dir source)
Vectors - What Are They? -
Vectors are arrows you can add together. (82 kb)
Distances As Vectors -
Drag dots around and see the distances between them (8 kb zip Dir source)
Velocities As Vectors -
Vectors fired from a cannon. (10 kb zip Dir source)
Equation of a Line -
An old concept that wants to be your friend. (73 kb)
Circles Colliding Part 1 -
Circles are 2-dimensional balls colliding and bouncing. (224 kb)
Circles Colliding Part 2 -
The math gets a little deeper... (661 kb)
Basic Oop -
Object Oriented Programming... a clear view.
Oop Example -
Circles follow the clicking mouse (10 kb zip Dir source)
Oscillations and Damping -
The miracle of sine waves and exponential functions (154 kb)
End the Oscillation -
Mathematically, an oscillation can last forever. (99 kb)
Damped Oscillation -
Oscillating circles are easy (9 kb zip Dir source)
"Legacy" Products
Teton Pop freeware Popup menu Xtra for Director.
|