Murphys's law on: Computers and Programming
Murphy's Laws of BBS'ing
1.The day after you buy the fastest new modem, they will change the standard so that your modem can only talk to modems of the same brand (only 100 of which were ever sold).
2.The factory will ship the wrong manual with your modem and you will spend hours finding and setting dip switches that aren't even on your modem.
3.However the modem comes set from the factory, it will be the WRONG way to work on your machine.
4.No matter what solution you devise to fix a problem with your modem, it will lead to the creation of at least four other problems.
5.Whenever a caller has problems using the BBS, the user will insist the problem is on the sysop's side and the sysop will insist the problem is on the caller's side.
6.If you fail to follow the advice of more experienced modemers and use the same password on every BBS you call, someone will steal your password and make lewd comments about the sysop's mother on the boards you WERE on.
7.If you DO follow the advice of more experienced modemers and use a totally different password on every BBS you call, you will forget the password of the board where your date has left a message telling you where to meet them tonight.
8.Your spouse, who rarely visits you at your computer, will stop by at the exact moment you've receive a flirtatious page from another user...You REALLY have never chatted with them before!
9.You will always forget to disable call waiting when connected to a pay-by-the-minute BBS.
10.A truely great BBS is either illegal, immoral, or long distance from you.
11.If a file takes more than 30 minutes to download, someone in your house will pick up the phone within the last 15 seconds.
12.No matter how neutral the topic, your message will offend SOMEONE.
13.The first time you forget to scan your file downloads for viruses will be the first time in your life you'll actually get a virus.
Dijkstra's Prescription for Programming Inertia:
If you don't know what your program is supposed to do, you'd better not start writing it.
First Maxim of Computers:
To err is human, but to really screw things up requires a computer.
If you put tomfoolery into a computer, nothing comes out but tomfoolery. But this tomfoolery, having passed through a very expensive machine, is somehow ennobled, and no one dares to criticize it.
Corollary - An expert is a person who avoids the small errors while sweeping on to the Grand Fallacy.
Gilb's Laws of Unreliability (see also Troutman's Laws of Computer Programming):
1. Computers are unreliable, but humans are even more unreliable.
At the source of every error which is blamed on the computer you will find at least two human errors, including the error of blaming it on the computer.
2. Any system which depends on human reliability is unreliable.
3. The only difference between the fool and the criminal who attacks a system is that the fool attacks unpredictably and on a broader front.
4. A system tends to grow in terms of complexity rather than of simplification, until the resulting unreliability becomes intolerable.
5. Self-checking systems tend to have a complexity in proportion to the inherent unreliability of the system in which they are used.
6. The error-detection and correction capabilities of any system will serve as the key to understanding the type of errors which they cannot handle.
7. Undetectable errors are infinite in variety, in contrast to detectable errors, which by definition are limited.
8. All real programs contain errors until proved otherwise -- which is impossible.
9. Investment in reliability will increase until it exceeds the probable cost of errors, or somebody insists on getting some useful work done.
Gray's Law of Programming:
n+1 trivial tasks are expected to be accomplished in the same time as n trivial tasks.
Logg's Rebuttal to Gray's Law of Programming:
n+1 trivial tasks take twice as long as n trivial tasks.
Computing power increases as the square of the cost. If you want to do it twice as cheaply, you have to do it four times slower.
That tendency to err that programmers have been noticed to share with other human beings has often been treated as if it were an awkwardness attendant upon programming's adolescence, which like acne would disappear with the craft's coming of age. It has p roved otherwise.
A computer makes as many mistakes in two seconds as 20 men working 20 years.
IBM Pollyanna Principle:
Machines should work. People should think.
Law of Computability Applied to Social Science:
If at first you don't succeed, transform your data set.
Laws of Computer Programming:
1. Any given program, when running, is obsolete.
2. Any given program costs more and takes longer.
3. If a program is useful, it will have to be changed.
4. If a program is useless, it will have to be documented.
5. Any program will expand to fill available memory.
6. The value of a program is proportional to the weight of its output.
7. Program complexity grows until it exceeds the capabilities of the programmer who must maintain it.
8. Any non-trivial program contains at least one bug.
9. Undetectable errors are infinite in variety, in contrast to detectable errors, which by definition are limited.
10. Adding manpower to a late software project makes it later.
11. Lubarsky's Law of Cybernetic Entomology: There's always one more bug.
Lubarsky's Law of Cybernetic Entomology
There's always one more bug.
If a computer cable has one end, then it has another.
Parker's Third Rule of Tech Support:
If you can't navigate a one-level, five-item phone tree, you didn't need a computer anyway.
Peck's Programming Postulates (Philosophic Engineering applied to programming):
1. In any program, any error which can creep in will eventually do so.
2. Not until the program has been in production for at least six months will the most harmful error be discovered.
3. Any constants, limits, or timing formulas that appear in the computer manufacturer's literature should be treated as variables.
4. The most vital parameter in any subroutine stands the greatest chance of being left out of the calling sequence.
5. If only one compiler can be secured for a piece of hardware, the compilation times will be exorbitant.
6. If a test installation functions perfectly, all subsequent systems will malfunction.
7. Job control cards that positively cannot be arranged in improper order, will be.
8. Interchangeable tapes won't.
9. If more than one person has programmed a malfunctioning routine, no one is at fault.
10. If the input editor has been designed to reject all bad input, an ingenious idiot will discover a method to get bad data past it.
11. Duplicated object decks which test in identical fashion will not give identical results at remote sites.
12. Manufacturer's hardware and software support ceases with payment for the computer.
Troutman's Laws of Computer Programming (and see Peck's Programming Postulates)
1. Any running program is obsolete.
2. Any planned program costs more and takes longer.
3. Any useful program will have to be changed.
4. Any useless program will have to be documented.
5. The size of a program expands to fill all available memory.
6. The value of a program is inversely proportional to the weight of its output.
7. The complexity of a program grows until it exceeds the capability of its maintainers.
8. Any system that relies on computer reliability is unreliable.
9. Any system that relies on human reliability is unreliable.
10. Make it possible for programmers to write programs in English, and you will find that programmers cannot write in English.
11. Profanity is the one language all programmers know best.
To err is human; to really foul things up takes a computer.
If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization.
Corollary: An expert is a person who avoids the small errors while sweeping on to the grand fallacy.
Never program and drink beer at the same time.