You cannot just paste code with no understanding of what is going on and expect it to work. --klortho You can't just make shit up and expect the computer to know what you mean, Retardo! --klortho You said it didn't work, but you didn't say what it would have done if it *had* worked. --klortho What are you really trying to accomplish here? --klortho Who the fuck cares which one is faster? --klortho Now is the time in our program where you look at the manual. --klortho Look at the error message! Look at the error message! --klortho Looking for a compiler bug is the strategy of LAST resort. LAST resort. --klortho Premature optimization is the root of all evil. --klortho Bad programmer! No cookie! --klortho I see you omitted $! from the error message. It won't tell you what went wrong if you don't ask it to. --klortho You wrote the same thing twice here. The cardinal rule of programming is that you never ever write the same thing twice. --klortho Evidently it's important to you to get the wrong answer as quickly as possible. --klortho Gee, I don't know. I wonder what the manual says about that? --klortho Well, no duh. That's because you ignored the error message, dimwit. --klortho Only Sherlock Holmes can debug the program by pure deduction from the output. You are not Sherlock Holmes. Run the fucking debugger already. --klortho Always ignore the second error message unless the meaning is obvious. --klortho Read. Learn. Evolve. --klortho Well, then get one that *does* do auto-indent. You can't do good work with bad tools. --klortho No. You must believe the ERROR MESSAGE. You MUST believe the error message. --klortho The error message is the Truth. The error message is God. --klortho It could be anything. Too bad you didn't bother to diagnose the error, huh? --klortho You don't suppress error messages, you dumbass, you PAY ATTENTION and try to understand them. --klortho Never catch a signal except as a last resort. --klortho Well, if you don't know what it does, why did you put it in your program? --klortho Gosh, that wasn't very bright, was it? --klortho That's like taking a crap on someone's doorstep and then ringing the doorbell to ask for toilet paper. --klortho A good approach to that problem would be to hire a computer programmer. --klortho First get a book on programming. Then read it. Then write the program. --klortho First ask yourself `How would I do this without a computer?' Then have the computer do it the same way. --klortho Would you like to see my rate card? --klortho I think you are asking the wrong question here. --klortho Holy cow. --klortho Because it's a syntax error. --klortho Because this is Perl, not C. --klortho Because this is Perl, not Lisp. --klortho Because that's the way it is. --klortho Because. --klortho If you have `some weird error', the problem is probably with your frobnitzer. --klortho Because the computer cannot read your mind. Guess what? I cannot read your mind *either*. --klortho You said `It doesn't work'. The next violation will be punished by death. --klortho Of course it doesn't work! That's because you don't know what you are doing! --klortho Sure, but you have to have some understanding also. --klortho Ah yes, and you are the first person to have noticed this bug since 1987. Sure. --klortho Yes, that's what it's supposed to do when you say that. --klortho Well, what did you expect? --klortho Perhaps you have forgotten that this is an engineering discipline, not some sort of black magic. --klortho You know, this sort of thing is amenable to experimental observation. --klortho Perhaps your veeblefitzer is clogged. --klortho What happens when you try? --klortho Now you are just being superstitious. --klortho Your question has exceeded the system limit for pronouns in a single sentence. Please dereference and try again. --klortho In my experience that is a bad strategy, because the people who ask such questions are the ones who paste the answer into their program without understanding it and then complain that it `does not work'. --klortho Of course, this is a heuristic, which is a fancy way of saying that it doesn't work. --klortho If your function is written correctly, it will handle an empty array the same way as a nonempty array. --klortho When in doubt, use brute force. --klortho Well, it might be more intuitive that way, but it would also be useless. --klortho Show the code. --klortho The bug is in you, not in Perl. --klortho Cargo-cult. --klortho So you threw in some random punctuation for no particular reason, and then you didn't get the result you expected. Hmmmm. --klortho How should I know what is wrong when I haven't even seen the code? I am not clairvoyant. --klortho How should I know how to do what you want when you didn't say what you wanted to do? --klortho It's easy to get the *wrong* answer in O(1) time. --klortho I guess this just goes to show that you can lead a horse to water, but you can't make him drink it. --klortho A programming language is low level when its programs require attention to the irrelevant. --Alan Perlis BSD guys are a lot like Linux guys, except they have kissed girls. --Forbes.com A year spent in artificial intelligence is enough to make one believe in God. --Alan Perlis Don't have good ideas if you aren't willing to be responsible for them. --Alan Perlis Every program has (at least) two purposes: The one for which it was written and another for which it wasn't. --Alan Perlis Fools ignore complexity. Pragmatists suffer it. Some can avoid it. Geniuses remove it. --Alan Perlis I think it is inevitable that people program poorly. Training will not substantially help matters. We have to learn to live with it. --Alan Perlis If a listener nods his head when you're explaining your program, wake him up. --Alan Perlis If you have a procedure with 10 parameters, you probably missed some. --Alan Perlis If your computer speaks English, it was probably made in Japan. --Alan Perlis In a 5 year period we get one superb programming language - only we can't control when the 5 year period will begin. --Alan Perlis In computing, turning the obvious into the useful is a living definition of the word "frustration". --Alan Perlis In English every word can be verbed. Would that it were so in our programming languages. --Alan Perlis In software systems it is often the early bird that makes the worm. --Alan Perlis Is it possible that software is not like anything else, that it is meant to be discarded: that the whole point is to always see it as a soap bubble? --Alan Perlis It goes against the grain of modern education to teach students to program. What fun is there to making plans, acquiring discipline, organizing thoughts, devoting attention to detail, and learning to be self critical. --Alan Perlis It is easier to change the specification to fit the program than vice versa. --Alan Perlis It is easier to write an incorrect program than understand a correct one. --Alan Perlis LISP programmers know the value of everything and the cost of nothing. --Alan Perlis One man's constant is another man's variable. --Alan Perlis Simplicity does not precede complexity, but follows it. --Alan Perlis Some programming languages manage to absorb change, but withstand progress. --Alan Perlis Symmetry is a complexity-reducing concept (co-routines include subroutines); seek it everywhere. --Alan Perlis Syntactic sugar causes cancer of the semicolon. --Alan Perlis The best book on programming for the layman is "Alice in Wonderland"; but that's because it's the best book on anything for the layman. --Alan Perlis The computing field is always in need of new cliches. --Alan Perlis The string is a stark data structure and everywhere it is passed there is much duplication of process. It is a perfect vehicle for hiding information. --Alan Perlis There are two ways to write error-free programs; only the third one works. --Alan Perlis We toast the Lisp programmer who pens his thoughts within nests of parentheses. --Alan Perlis When someone says "I want a programming language in which I need only say what I wish done," give him a lollipop. --Alan Perlis You can measure a programmer's perspective by noting his attitude on the continuing vitality of FORTRAN. --Alan Perlis 1. Complete the task. --John W. Mackay's Rules of Life 2. Fix your mistakes. --John W. Mackay's Rules of Life 3. Work harder than the other guy. --John W. Mackay's Rules of Life 4. Disclose your weaknesses. --John W. Mackay's Rules of Life 5. Do your best. --John W. Mackay's Rules of Life 6. Know your enemy (they're *all* your enemy). --John W. Mackay's Rules of Life 7. "Please", "thank you", "I'm sorry", and "can I help you?" --John W. Mackay's Rules of Life 8. "I don't know" and "I was mistaken". --John W. Mackay's Rules of Life 9. There are no secrets. --John W. Mackay's Rules of Life 10. There *are* simple answers. --John W. Mackay's Rules of Life 11. Don't count on tomorrow. --John W. Mackay's Rules of Life 12. Don't count on other people. --John W. Mackay's Rules of Life 13. Do good for its own sake. --John W. Mackay's Rules of Life 14. Keep moving forward. --John W. Mackay's Rules of Life 15. Action trumps discussion. --John W. Mackay's Rules of Life 16. Don't let fear, pain, failure, or ego stop you.--John W. Mackay's Rules of Life 17. You're no better than anyone else. --John W. Mackay's Rules of Life if you look at java.util.regex.Pattern.java, you'll get a free peek into the Intern Project from Hell. -- Steve Yegge Perl made Unix kinda fun, even more so than it already was. -- Steve Yegge Friends: don't let friends use Singletons! -- Steve Yegge Howard Aiken: "Don't worry about people stealing an idea. If it's original, you will have to ram it down their throats." Gather the nectar of other people's thoughts like a honeybee -- Seneca. If at first you don't succeed, chainsaw juggling is not for you. "There's nobody getting rich (by) writing software" - Bill Gates "I have a secret love of chaos. There should be more of it." -- P.K. Dick All the oohs and aahs you hear about the digital revolution are nothing but the squeals humans emit when tickled pink by Moore's Law. --Bernard Chazelle William Gibson once said "the future is already here, it's just unevenly distributed." -- Why do we have to hide from the police, daddy? -- Because we use vi, son. They use emacs. (via Michael Crawford) "This is the systems programming equivalent of finding a live wooly mammoth contentedly smoking a cigar in your recliner." -- Keith Wesolowski "I know there's a farmer out there somewhere who never wants a PC and that's fine with me."--Bill Gates 'If someone tells you they have the answer, they probably haven't understood the question.' -- folk saying 'Thinking is very hard work. And management fashions are a great substitute for thinking.' -- the late Peter Drucker 'If you cannot explain the cause of a bug and how the change you made corrected the problem, you are fooling yourself.' -- Ingres Coding Standards "There's only really one metric to me for future software development, which is -- do you write less code to get the same thing done?" -- Bill Gates (2005) "No one tests the depth of a river with both feet." -- African proverb 'despite months of effort, this patch turned out to be one-line long, another lesson in how lines of code is an entirely useless metric of productivity' -- Colm MacCarthaig 'When at times I exclaimed, "I found the bug!", my son would respond with the same enthusiasm, "Did you kill it?". ' -- Sherry Q. Moore (Sun engineer) 'A customer will soon forgive you for shipping good stuff later than you promised but will never forgive you for shipping bad stuff on time.' -- folk wisdom 'Computer programming teaches humility, or at least that's my experience.' -- Brian Hayes "Don't start optimizing your program until you've finished writing it." -- old adage, quoted by Brian Hayes Knuth quotes Piet Hein's advice: "Err and err and err again but less and less and less." Samuel Beckett: "Fail again. Fail better." "Success goes to your head, happiness to your hips" - Tye McQueen 'If you try and take a cat apart to see how it works, the first thing you have on your hands is a non-working cat.' -- Douglas Adams 'All opinions are not equal. Some are a very great deal more robust, sophisticated and well supported in logic and argument than others.' -- Douglas Adams 'Anything that happens happens, anything that in happening causes something else to happen causes something else to happen, and anything that in happening causes itself to happen again, happens again. Although not necessarily in chronological order.' -- Douglas Adams "[The World Wide Web is] the only thing I know of whose shortened form - www - takes three times longer to say than what it's short for." -- Douglas Adams "Technology is a word that describes something that doesn't work yet." -- Douglas Adams "A nerd is someone who uses a telephone to talk to other people about telephones." -- Douglas Adams "Writing is easy. You only need to stare at a piece of blank paper until your forehead bleeds." -- Douglas Adams "Time is an illusion, lunchtime doubly so." -- Douglas Adams 'This must be Thursday. I never could get the hang of Thursdays.' -- Douglas Adams 'If you don't document it, you might as well not build it.' -- Anonymous post on groklaw.net "I swallowed a bug." -- River Tam "code is not your friend: the more you have, the more maintenance costs, the more complexity is a problem." -- Marc Colan "The person who is slowest in making a promise is most faithful in its performance." - Jean-Jacques Rousseau "If I had asked my customers what they wanted they would have said a faster horse." -- Henry Ford If you can't feed a team with two pizzas, it's too large. -- Jeff Bezos 'Beware of the man who works hard to learn something, learns it, and finds himself no wiser than before. He is full of murderous resentment of people who are ignorant without having come by their ignorance the hard way.' -- Bokonon 'Don't look for problems you don't have, because someone else who is passionate about it will solve it better than you can.' -- Joshua Schachter 'Every day you don't have something out in the world you are losing information, feedback, users, reputations. Get it out there, get the release done asap.' -- Joshua Schachter 'If you aren't sure if something is a bug, that's a bug. Please file a bug and mention your uncertainty in the bug report.' -- Tabriz (Sun Engineer) 'Real artists ship.' -- Steve Jobs "1. Fight software rot." -- The Pragmatic Programmer "2. Catalyze change." -- The Pragmatic Programmer "3. Avoid the trap of duplicating knowledge." -- The Pragmatic Programmer "4. Write flexible, dynamic and adaptable code. " -- The Pragmatic Programmer "5. Harness the power of basic tools." -- The Pragmatic Programmer "6. Avoid programming by coincidence." -- The Pragmatic Programmer "7. Bullet-proof your code with contracts, assertions and exceptions." -- The Pragmatic Programmer "8. Capture real requirements." -- The Pragmatic Programmer "9. Keep formal tools in their place." -- The Pragmatic Programmer "10. Test ruthlessly and effectively." -- The Pragmatic Programmer "11. Delight your users." -- The Pragmatic Programmer "12. Build teams of pragmatic programmers." -- The Pragmatic Programmer "13. Take responsibility for your work and career." -- The Pragmatic Programmer "14. Make your developments more precise with automation." -- The Pragmatic Programmer "Add tests until fear turns into boredom" - attrib. to Ron E. Jeffries "Wisdom begins when we discover the difference between 'that makes no sense' and 'I don't understand'" -- Mary Doria Russell when all else fails, try philosophy. -- taner edis "If you don't have the source code, you are probably going to be screwed in the long run." -- Philip Greenspun "No amount of marketing hype suffices to make a C program work as advertised." -- Philip Greenspun Larry Wall once said that "a Perl script is correct if it's halfway readable and gets the job done before your boss fires you." -- Mark Jason Dominus If we knew what we were doing, it wouldn't be called research, would it? - Albert Einstein UNIX is like Sex: If you don't know it, you don't miss it. But if you know it, you'll need it. -- Unknown "Heavenly Father, I wish to file a Bug Report..." -- Penguinisto's /. signature "If you can't do it in FORTRAN, do it in assembly language. If you can't do it in assembly language, it isn't worth doing." -- Ed Post "What the hardware giveth, the software taketh away." -- Niklaus Wirth quoted by Joe Armstrong "After a long and careful analysis the results are clear: 11 out of 10 people can't handle threads." -- Todd Hoff, "The Solution to C++ Threading is Erlang" 1. The Primal Scenario or Basic Datum of Experience: Systems in general work poorly or not at all. -- http://en.wikipedia.org/wiki/Systemantics 1a. Complicated systems seldom exceed five percent efficiency. -- http://en.wikipedia.org/wiki/Systemantics 2. The Fundamental Theorem: New systems generate new problems. -- http://en.wikipedia.org/wiki/Systemantics 4. Laws of Growth: Systems tend to grow, and as they grow, they encroach. -- http://en.wikipedia.org/wiki/Systemantics 5. The Generalized Uncertainty Principle: Systems display antics. (Complicated systems produce unexpected outcomes. The total behavior of large systems cannot be predicted.) -- http://en.wikipedia.org/wiki/Systemantics 6. Le Chatelier's Principle: Complex systems tend to oppose their own proper function. As systems grow in complexity, they tend to oppose their stated function. -- http://en.wikipedia.org/wiki/Systemantics 7. Functionary's Falsity: People in systems do not actually do what the system says they are doing. -- http://en.wikipedia.org/wiki/Systemantics 8. The Operational Fallacy: The system itself does not actually do what it says it is doing. -- http://en.wikipedia.org/wiki/Systemantics 12. A complex system cannot be "made" to work. It either works or it doesn't. -- http://en.wikipedia.org/wiki/Systemantics 13. A simple system, designed from scratch, sometimes works. -- http://en.wikipedia.org/wiki/Systemantics 14. Some complex systems actually work. -- http://en.wikipedia.org/wiki/Systemantics 15. A complex system that works is invariably found to have evolved from a simple system that works. -- http://en.wikipedia.org/wiki/Systemantics 16. A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over, beginning with a working simple system. -- http://en.wikipedia.org/wiki/Systemantics 17. The Functional Indeterminacy Theorem (F.I.T.): In complex systems, malfunction and even total non-function may not be detectable for long periods, if ever. -- http://en.wikipedia.org/wiki/Systemantics 18. The Newtonian Law of Systems Inertia: A system that performs a certain way will continue to operate in that way regardless of the need or of changed conditions. -- http://en.wikipedia.org/wiki/Systemantics 19. Systems develop goals of their own the instant they come into being. -- http://en.wikipedia.org/wiki/Systemantics 22. A complex system can fail in an infinite number of ways. (If anything can go wrong, it will.) (See Murphy's law.) -- http://en.wikipedia.org/wiki/Systemantics 23. The mode of failure of a complex system cannot ordinarily be predicted from its structure. -- http://en.wikipedia.org/wiki/Systemantics 24. The crucial variables are discovered by accident. -- http://en.wikipedia.org/wiki/Systemantics 25. The larger the system, the greater the probability of unexpected failure. -- http://en.wikipedia.org/wiki/Systemantics 27. The Fail-Safe Theorem: When a Fail-Safe system fails, it fails by failing to fail safe. -- http://en.wikipedia.org/wiki/Systemantics 28. Complex systems tend to produce complex responses (not solutions) to problems. -- http://en.wikipedia.org/wiki/Systemantics 29. Great advances are not produced by systems designed to produce great advances. -- http://en.wikipedia.org/wiki/Systemantics 30. The Vector Theory of Systems: Systems run better when designed to run downhill. -- http://en.wikipedia.org/wiki/Systemantics 31. Loose systems last longer and work better. (Efficient systems are dangerous to themselves and to others.) -- http://en.wikipedia.org/wiki/Systemantics 32. As systems grow in size, they tend to lose basic functions. -- http://en.wikipedia.org/wiki/Systemantics 33. The larger the system, the less the variety in the product. -- http://en.wikipedia.org/wiki/Systemantics 34. Control of a system is exercised by the element with the greatest variety of behavioral responses. -- http://en.wikipedia.org/wiki/Systemantics 35. Colossal systems foster colossal errors. -- http://en.wikipedia.org/wiki/Systemantics Helpful housekeeping hints: Check your feather pillows for holes before putting them in the washing machine. -- Darren New's email sig It's time for a coffee. It's time for a caipirinha! "Agile Teams, Open Software, Passionate Users .. Life is too short for anything else." -- Ian Clatworthy "...if I wanted concurrent Fortran, well, I'd lie down until the feeling passed off." -- Richard A. O'Keefe For every expert there is an equal and opposite expert -- Arthur C. Clarke "The first principle of optimization is *don't*." -- The Practice of Programming "Measur[ing] the quality of a programmer by the number of commits she makes is like measuring the quality of a legislature by the number of laws it passes." -- Karl Fogel "Enjoy what you're doing! If it becomes drudgery, you're doing it wrong!" - Jim Butterfield "...the question is not how to avoid procrastination, but how to procrastinate well." -- Paul Graham "Programming is where enthusiasm meets reality." -- What Makes the History of Software Hard by Michael S. Mahoney Esther Dyson: "Always make new mistakes" Moen's Law of Documentation: "The more you write, the less they read." -- http://linuxmafia.com/~rick/lexicon.html#moenslaw-documentation Edwards's Law: "You cannot apply a technological solution to a sociological problem." ...if you stripped away all the "badly designed" C libs and "badly designed" OS interfaces you'd just end up interfacing directly to "badly designed" hardware. -- Adrian Hey "Life is just too short for programmers to be manually allocating memory and manipulating pointers" -- Philip Greenspun 'If you walk too loudly down the hall near the [Windows] kernel developers, you'll break 20 to 30 apps.' -- Microsoft associate software architect Chris Jackson "Strings are the opiate of the masses." - Richard O'Keefe The tools we use have a profound (and devious!) influence on our thinking habits, and, therefore, on our thinking abilities. - E.W. Dijkstra, EWD498 FORTRAN --"the infantile disorder"--, by now nearly 20 years old, is hopelessly inadequate for whatever computer application you have in mind today: it is now too clumsy, too risky, and too expensive to use. - E.W. Dijkstra, EWD498 PL/I --"the fatal disease"-- belongs more to the problem set than to the solution set. - E.W. Dijkstra, EWD498 It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration. - E.W. Dijkstra, EWD498 The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offence. - E.W. Dijkstra, EWD498 APL is a mistake, carried through to perfection. It is the language of the future for the programming techniques of the past: it creates a new generation of coding bums. - E.W. Dijkstra, EWD498 About the use of language: it is impossible to sharpen a pencil with a blunt axe. It is equally vain to try to do it with ten blunt axes instead. - E.W. Dijkstra, EWD498 Besides a mathematical inclination, an exceptionally good mastery of one's native tongue is the most vital asset of a competent programmer. - E.W. Dijkstra, EWD498 Simplicity is prerequisite for reliability. - E.W. Dijkstra, EWD498 The use of anthropomorphic terminology when dealing with computing systems is a symptom of professional immaturity. - E.W. Dijkstra, EWD498 In spite of its name, software engineering requires (cruelly) hard science for its support. - E.W. Dijkstra, EWD498 In the good old days physicists repeated each other's experiments, just to be sure. Today they stick to FORTRAN, so that they can share each other's programs, bugs included. - E.W. Dijkstra, EWD498 Projects promoting programming in "natural language" are intrinsically doomed to fail. - E.W. Dijkstra, EWD498 ...if you carefully read its literature and analyse what its devotees actually do, you will discover that software engineering has accepted as its charter "How to program if you cannot." -- E.W. Dijsktra "who gives an expletive if it's 10% slower on a single core machine?" -- Mats Cronqvist (Erlang mailing list) "real man" programmers stare at the code in Zen contemplation and debug by powercycling -- Alan Cox Space Corps Directive #349: Any officer found to have been slaughtered and replaced by a shape-changing chameleonic life form shall forfeit all pension rights. -- Red Dwarf "Thought is supposed to be a guide for action. Not a substitute for it." "If this is not what you expected, please alter your expectations." - Erik Naggum "...Perl is a great and insidious evil, perpetrated by skilled but perverted professionals." - Jon Ribbens I have actually programmed a fair bit in Perl, like I have C++ code published with my name on it. Other things I have tried and have no intention to do again if I can at all avoid it include smoking, getting drunk enough to puke and waste the whole next day with hang-over, breaking a leg in a violent car crash, getting mugged in New York City, or travel with Aeroflot. - Erik Naggum Trading debugging flexibility for small increases in runtime performance is a splendid way to lose. - Carl Shapiro Have you considered the option of getting the joke? If not, try it now and redeem your soul. - Erik Naggum So much evil follows from the decision to have one namespace that it is hard to imagine that it can be the single source. - Erik Naggum Pascal is for building pyramids -- imposing, breathtaking structures built by armies pushing heavy blocks into place. Lisp is for building organisms ... - Alan Perlis "We are stuck with technology when what we really want is just stuff that works." - Douglas Adams "Coding is an activity that is notoriously inefficient at converting money into other things." -- glyph ...programming is like frisbee, and predictions more specific than "hey, watch this!" are dangerous -- glyph Ted Nelson: "Of course it [Xanadu] is real. You know it's real because it crashes." (quoted by Steven A. Lowe)