mike's web log/quotes

advice computers editing education funny general language laws music politics reading religion science sports technology working writing (all)

Playfully doing something difficult, whether useful or not, that is hacking.
-- Richard Stallman   general | computers

Cringley's Second Law: Ease of use with equivalent performance varies with the square root of the cost of development. That means that to design a computer that's ten times easier to use would cost 100 times as much.
-- Robert Cringley   computers | laws

Looking at code you wrote more than two weeks ago is like looking at code you are seeing for the first time.
-- Alzheimer's Law of Programming (via Dan Hurvitz)   computers | laws

Technology smells fear.
-- William M. Akers [also: #]   computers | technology | funny

There are 10 types of people in this world -- those who read binary and those who don't.
-- Anon.   computers | funny

Without variables, programs would not be very interesting.
-- Kenny Kerr   computers

The software product cycle is a little like a pregnancy I suppose. The first few months are easy, even enjoyable. The last few weeks are mostly discomfort and pain. But then, the product is finally "born", and the world suddenly seems to make sense again.
-- Eric Sink   computers | writing

Science is what we understand well enough to explain to a computer. Art is everything else we do.
-- Donald Knuth   general | computers

Of course, the real problem with software development is the users. It's unbelievable. They've caused problems with every program I've ever written.
-- Jeff Atwood   computers | advice

Even on the small scale, when you look at any programming organization, the programmers with the most power and influence are the ones who can write and speak in English clearly, convincingly, and comfortably. Also it helps to be tall, but you can't do anything about that.
-- Joel Spolsky   computers | writing

This process of digging up the details and learning how things work leads down many side streets and to many dead ends, but is fundamental (I think) to understanding something new. Many times in my books I have set out to write how something works, thinking I know how it works, only to write some test programs that lead me to things that I never knew. I try to convey some of these missteps in my books, as I think seeing the wrong solution to a problem (and understanding why it is wrong) is often as informative as seeing the correct solution.
-- W. Richard Stevens   writing | computers | education

If I wanted slow, buggy, and crash-prone, I would have written it myself.
-- Jeff Atwood   computers

In object oriented systems, there is a bit of mental judo going on whereby you convert a system from imperative statements like "print x" to a more message oriented "to: x; message: go print yourself".
-- Sam Ruby   computers

Sometimes, writing code means you've failed. So much of what we do already exists, and in more mature, complete form. The real challenge in modern programming isn't sitting down and writing a ton of code; it's figuring out what existing code or frameworks you should be hooking together.
-- Jeff Atwood   computers

In the absence of authentication evidence, clients must assume that all servers are run by evil hackers and servers must assume that all clients are run by evil hackers. Once you accept that fundamental design principle then it becomes much easier to reason about client-server interactions. Think like an evil person!
-- Eric Lippert on Web security   computers

You save time when you don't need to have an awards ceremony every time a C statement does what it's supposed to do.
-- Steve McConnell   computers

It's an odd phenomenon that when you know something about technology, people assume you know everything about technology.
-- Chris Clements   computers | general

Nobody is really smart enough to program computers. The only way you'll ever succeed as a software developer is through humility and the Zen concept of beginner's mind: approaching everything as if you were seeing it for the first time. Most of all, that means not being afraid to ask the stupid questions.
-- Jeff Atwood   computers

AJAX: Finally, a technology that can be universally applied to solve any problem, except maybe paranoia, since they won't turn javascript on.
-- "nate"   computers

Information is the currency of the Internet. As a medium, the Internet is brilliantly efficient at shifting information from the hands of those who have it into the hands of those who do not. [...] The Internet has accomplished what no consumer advocate could: it has vastly shrunk the gap between the experts and the public.
-- D. Levitt & Stephen J. Dubner, Freakonomics   general | computers

The goal of a GUI is to present the user with as few decision points as possible. Remember the Macintosh dictum that the user should never have to tell the machine anything that it knows or can deduce for itself. "As few as possible decision points" is another way of stating the guiding principle of good UI design for end-users: Allow the user the luxury of ignorance. This does not mean that you can't reward acquired knowledge with more choices and more power; you can and should do that. But the user should also be able to choose to remain ignorant and still get all their basic tasks done. The more thoroughly software developers internalize the truth that real users have better things to do with their time and attention than worship at the shrine of geek technical prowess, the better off everyone will be.
-- Eric Raymond   computers

On two occasions I have been asked, "Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?" I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question.
-- Charles Babbage   general | computers

Just because technology makes it possible for us to work 10 times faster than we used to doesn't mean we should do it.
-- Tony Long   computers | general

Final source code is the real software design.
-- Jack W. Reeves   computers

One way to make a million dollars would be to work for the Post Office your whole life, and save every penny of your salary. Imagine the stress of working for the Post Office for fifty years. In a startup you compress all this stress into three or four years. You do tend to get a certain bulk discount if you buy the economy-size pain, but you can't evade the fundamental conservation law. If starting a startup were easy, everyone would do it.
-- Paul Graham   general | computers

Furrygoat's Law: Every program expands until it can read RSS feeds.
-- Steve Mafosky, based on Lett's Law: All programs evolve until they can send email.   computers | laws

Phishing is a major problem because there really is no patch for human stupidity.
-- Mike Danseglio   general | computers

Watching non-programmers trying to run software companies is like watching someone who doesn't know how to surf trying to surf. "It's ok! I have great advisors standing on the shore telling me what to do!" they say, and then fall off the board, again and again.
-- Joel Spolsky   computers

If in your office you as an intellectual worker were supplied with a computer display backed up by a computer that was alive for you all day and was instantly responsive to every action you had, how much value could you derive from that?
-- Douglas Engelbart (December 9, 1968)   computers

The remarkably wide range of programming languages would seem to offer something for everyone. We could celebrate diversity. We could let a thousand flowers bloom. What actually happens, more often, is that we launch a crusade to convert the infidels—or else exterminate them.
-- Brian Hayes   computers

If you do need to optimize for speed or space in your application, attacking anything other than the bottleneck is a waste of time.
-- Philip Chu   computers

Documentation should be treated like any other requirement-estimated, prioritized, and planned for accordingly. In other words, don't blindly create documentation simply because it makes you feel comfortable; instead do it because it adds value.
-- Scott Ambler   computers | writing

As it turns out, computers have a hard time with the concept of "good".
-- Jeff Atwood   computers

What is the Internet, if not the world's most efficient way to say something bad about someone -- and post pictures of cats?
-- John Scalzi   computers

Anybody who reads the newspaper can easily look at the high-tech industry and see that stupidity is like beer at an NFL football game: Half the people have got plenty of it and they keep spilling it on the other half.
-- Eric Sink   computers | funny

He who gets his users past the suck threshold and into the kick-ass zone the fastest wins.
-- Kathy Sierra   advice | computers

Your users don't give a damn what framework and language you're using. The only people who care about that stuff are other software developers. And God help you if your users are software developers; then you're really in trouble.
-- Jeff Atwood   computers

The designer of a new system must not only be the implementor and the first large-scale user; the designer should also write the first user manual. ... If I had not participated fully in all these activities, literally hundreds of improvements would never have been made, because I would never have thought of them or perceived why they were important.
-- Donald Knuth   computers | writing

Making mistakes is inevitable, but repeating the same ones over and over doesn't have to be. You should endeavor to make all-new, spectacular, never-seen-before mistakes.
-- Jeff Atwood   computers | advice

There's no point improving the implementation of a bad idea.
-- Raymond Chen   advice | computers

Top tip, spend time in front of your wife for some more analog experiences ;)
-- "Jimmy"   advice | computers

Making it easy to do good stuff is obviously goodness; thinking about how to make it hard to do bad is actually more important.
-- Eric Lippert   computers | advice

So much of leadership is learning to give a damn about other people, something that us programmers are notoriously bad at. We may love our machines and our code, but our teammates prove much more complicated.
-- Jeff Atwood   computers

The perfect website is exactly one page, the one the visitor wants. But nearly every page on the web is about changing your mind--"There's more over here!"
-- Paul Ford   computers | writing | editing

I've tried management a time or three and ended up unhappy every time.
-- Mike Gunderloy   general | computers

We cannot allow engineers to build products for an idealized rational user when real humans are irrational: we must design for the way users actually behave.
-- Jakob Nielsen, "The Paradox of the Active User"   computers | general

Documentation is necessary, but users do NOT want to read it. If your users are asking you for more documentation, the lack of documentation is not really the problem. Your application is too complicated.
-- Scott Watermasysk   computers | writing

The main thing you don't learn with a CS degree is how to develop software, although you will probably build up certain muscles in your brain that may help you later if you decide that developing software is what you want to do.
-- Joel Spolsky   computers | education

As long as you don't write your own algorithm, secure encryption is easy.
-- Bruce Schneier   computers

I take the first approach that jumps into my mind and run with it, no matter how complicated it may be. This is the beauty of group work, because my overly elaborate and complicated solution usually ends up as inspiration for someone else's.
-- Son Zack   general | computers

What does it mean for a [computer] language to be powerful? It doesn't mean that you can write programs in a particular language that do things you can't do in some other language. Instead, the power of a language is a way of measuring how much the language helps you concentrate on the actual problem you wanted to solve in the first place, rather than having to worry about the constraints of the language.
-- Brian Harvey   computers

The problem with most attempts to make products on the web is that developers assume that they only way to beat the competition is through laundry lists of new features. The reality is that people spend the majority of their time using the core of your product and ignore most of the extraneous fluff.
-- Steven Spalding   computers

Feature matrices suck. A feature matrix says: "Here is what everyone else is doing. To be competitive you must do the same." Where's the differentiation? Where's the innovation in doing exactly what everyone else does, ticking the boxes, shaving off one or two points in each row so you get the green tick?
-- Charles Miller   computers | general

One of the first rules of product design is that where possible, don't try to fight sociology. Moreover, if you are going to wage a war against human psychology, do it elegantly. Most Web 2.0 product design assumes that the world at large behaves in a way that it simply does not.
-- Steve Spalding   computers

When a technology goes from 'bleeding edge' to usable ... well there's a lot less bleeding involved.
-- Leon Bambrick   computers

Writing computer programs is important and takes great intelligence and skill. But it is really child's play compared to everything else that a good programmer must do to make a software system that succeeds for both the customer and myriad colleagues for whom she is partially responsible.
-- Robert L. Read   computers

Let me tell you, I've been emotionally involved with companies before, and it rarely ends well. I find that corporations never reciprocate your love in quite the same way.
-- Jeff Atwood   general | computers

Hierarchical and sequential structures, especially popular since Gutenberg, are usually forced and artificial. Intertwingularity is not generally acknowledged—people keep pretending they can make things hierarchical, categorizable and sequential when they can't.
-- Ted Nelson   computers | writing | general

Given a sufficiently large framework, any application can be a one-liner.
-- Leon Bambrick   computers | funny

Sometimes, you are so close to a great solution that if the wind blows a certain way, you'll hit upon it, but if it blows another way, you dismiss your line of thought and move onto other plans. Try as you might, it is very difficult to get the design just right the very first time all of the time.
-- Phil Haack   computers

The Internet owes its success to two pillars of human activity: masturbation and procrastination.
-- Chris Wilson   general | computers | funny

Piracy is the world's most efficient software distribution network.
-- Jeff Atwood   computers

When it comes to .NET, if you think something is impossible you are probably thinking too hard.
-- "Doc Detective"   computers

When I think "What is my positive impact on the world?", I realize that Microsoft is this giant lever that you can do something that immediately affects a huge swath of the world. That really floats my boat.
-- John Platt, who helped develop ClearType   computers | general

I think one metaphor accurately reflects the way software is built in the real world: flail around randomly and pray you succeed by force of pure dumb luck. Sometimes it even works. Not very often, but just enough to confuse people who should know better into thinking they're smart, when what they really were is lucky.
-- Jeff Atwood   computers

Remember, loops are nothing more than a more pleasant way to write a "goto".
-- Eric Lippert   computers

If the product is used as a tool, its interface should be as unintelligent as possible. Stupid is predictable; predictable is learnable; learnable is usable.
-- Mencius Moldbug   computers

I don’t know much about cryptography; the most important thing that I do know on the subject is that I don’t know nearly enough about cryptography to safely design or implement a crypto-based security system.
-- Eric Lippert   computers

If you think about it, you could actually say that software design boils down to "Where should this code go?" I think there’s a watershed moment in every developer’s career when they start look more at their code as a structure and less as a bag of statements.
-- Jeremy D. Miller   computers

Email is the cockroach of communication mediums: you just can't kill it.
-- Jeff Atwood   computers | general

Anyone who tells you that HTML should be kept “pure” (presumably by ignoring browser makers, or ignoring authors, or both) is simply misinformed. HTML has never been pure, and all attempts to purify it have been spectacular failures, matched only by the attempts to replace it.
-- Mark Pilgrim   computers

What the Internet seems to do best is make commonly available enormously vast resources of mis-information that we never knew existed.
-- Charles Petzold   computers

Google is the greatest programming resource that has ever existed. You cannot look down on someone for using the most powerful learning tool computer science has ever known.
-- Steven Brenner   computers

Writing manuals is a very special and privileged task in a computer company, for in the process of writing them you are forced to go over every detail of the hardware and software the company sells in an attempt to make it understandable and usable in our extremely broad customer base. In the process a conscientious writer will discover nearly every good and bad feature of the system, and can provide valuable feedback to the designers and implementers.
-- Jef Raskin   writing | computers

If it's possible to do something, then it's possible to do something wrong.
-- Raymond Chen   computers | advice

All quotations are copyright of their respective owners.