“eBook Maker Gifts” Released!

There are a number of eBooks picked out from this site, but that barely scratches the surface of what is possible.

eBook Maker Gifts is meant to publish the envelope on what is possible. In maker fashion, it allows extended customization, beginning with the maker’s choice from among hundreds of texts and collections by the author that amount to more possible combination than there are stars in Heaven. And that does not count ways to arrange the works you choose. Or the options you have to give the collection a dedication you write, or an introduction to the reader. Did I mention it lets you upload a custom cover? The site as a whole is intended to work like a computer configurator webpage (click the page’s red button to see options).

The collection, and the books you can download, are under a CC0 “No rights reserved” license. eBook Maker Gifts are intended to allow you a lot of flexibility in what you use the platform to create. And they are also intended to let you create further.

Of course, you’re welcome to use eBook Maker to create gifts to yourself as well. You are entirely welcome to assemble a collection of things that you’d like to read yourself!

But this site is offered in large measure so that even if money is awfully tight, you have at least one option to select a gift with thought and care, personalize it just right, and give something that is far more than just a price tag.

Explore eBook Maker Gifts now!

Theory of Alien Minds: A UX Copernican Shift

There was one moment of brilliance, I was told, when a North American missionary visiting in Latin America was asked if clothing and sheets lasted longer in her first-world home. The question was not surprising and it reflected cross-cultural understanding: bedsheets and clothing in the U.S. can last for quite some time, while bedsheets and clothing in the host country wear out quickly, perhaps in a few weeks, and it is nickle-and-dime drain on none-too-deep pockets to keep replacing them. The question, perceptive enough, was a question about privilege and easy living.

The missionary’s response was astute. She thought for a minute, and then said that yes, sheets in her home area lasted much longer than several weeks if properly cared for… and continued to explain, in addition, what people wore when they were all bundled up for bitter cold. Winter clothing normally goes well beyond what is needed for modesty, and gloves, hats, and scarves (or, today, ninja masks) exist because on the very worst days every square inch of exposed skin will be brutally assaulted. The conversation ended with a slight degree of pity from people who only wore clothes for modesty realized that yes, as they had heard, bedsheets and normal clothing lasted much longer than several weeks, but there were some other price tags to pay. The missionary’s communication was in all sympathetic, human, and graceful.

Something similar may be said of the degree of IQ where you learn firsthand that being making other people envious is not a good thing, and where it happens more than once that you need to involve authorities or send a C&D letter for harassment to stop, and where others’ insecurities leave you socially skating on thin ice surprisingly often. Nonetheless, what may be the most interesting social lesson may have every relevance to “UX,” or User eXperience, and it has to do with what is called “theory of other minds. The normal conditions for developing “theory of other minds” can run into difficulties, but there is something very valuable that can happen.

Theory of other minds,
Split into “theory of like minds”, and:
“theory of alien minds”:
A Copernican shift

One classic developmental step in communication is developing a “theory of other minds”, meaning that you relate to people as also having minds, rather than as some sort of thing that emits what may be inexplicable behaviors instead of acting out of human motives and beliefs.

Part of how the normal “theory of minds” develops is that children tend to give adults gifts they would like to receive themselves, such as colorful toys rather than books. At a greater stage of maturity, people can go from giving gifts they would themselves like to receive, to giving gifts they would not want as much themselves, but another person would. However, in normal development this is an advanced lesson. For most people, the baseline is assuming that most people think like them most of the time.

For outliers in some dimensions, this simple picture does not work. People start with the same simple assumption: that you can relate to people as basically thinking like you. But if you’re different enough, you’ll break your shins with this approach. Perhaps outliers communicate markedly better if they know one person who starts on the same page, but communication is harder.

The crucial distinction I would draw is between theory of like minds and theory of alien minds. Both theory of like minds and theory of alien minds relate to others as having minds. But theory of like minds is based on the assumption that other people think as you do. Theory of alien minds also really and truly relates to others as having minds, but it is based on a realization that you are not the center of the universe, others often do not think like you, and you need to build bridges.

“Theory of like minds” says, “Other people have minds that are basically just like mine.”

“Theory of alien minds” takes a step back, saying, “Other people have minds, and they have minds whether or not they’re basically just like mine.

This Copernican shift has every relevance to “Let’s not forget the user” disciplines in UX.

So what does a “theory of alien minds” really look like?

Let me provide several examples, before getting into what it has to do with UX:

Hayward has worked long and hard to communicate well.

Many people might guess that the features of his [giftedness] would bring benefits…

…but few guess how much.

The same kind of thing goes with excellent communication. When a friend came from out of town to live in a local apartment, quite a few friends gathered to help unload the moving van.

Hayward, asked for an assignment, expecting to be asked to carry something. Instead, for reasons that are still not clear, she handed him a leash and asked him to look after a dog she has introduced as not at all comfortable around men. And the dog very quickly moved as far away as his leash would allow. But Hayward worked his magic… and half an hour later, he was petting the dog’s head in his lap, and when he stood up, the dog bounded over to meet the other men in the group.

In another setting, Hayward was waiting for labwork at a convenient care center, when a mother came in, with a four-year-old daughter in tow. The girl was crying bitterly, with a face showing that she was in more pain than she knew how to cope with, and an ugly bulging purple bloodblister under her thumbnail. Hayward understood very well what was going on; his own experience as a child who smashed a thumbnail badly enough to get a bloodblister underneath, was the most pain he had experienced yet in his life.

When the convenient care staff threw the mother a wad of paper to fill out before treatment (as opposed, for instance, to first just administering anaethesia and only after that detain the mother with paperwork), she left the child crying alone in a chair. Hayward walked over, wanting to engage the girl in conversation in the hopes of lessening her pain. He crouched down to be at eye level, and began to slowly, gently, and calmly speak to the child.

Some time later, Hayward realized two things.

First of all, his attempt to get the girl to talk were a near-total failure. He had started by asking her favorite color, and she was able to answer that question. But essentially every other age-appropriate prompt was met with silence: “Q: What kind of instrument does a dog play?”—”A: A trom-bone.” (But maybe her pain was too great to allow regular conversation.)

Second of all, she had stopped crying. Completely. And her face no longer showed pain. He had, partly by his nonverbal communication, entirely absorbed her attention, and she was unaware of pain that had her bawling her eyes out some minutes before. Hayward realized this with a start, and tried to keep up the conversation such as it was, regardless of whether he had anything to say. A rather startled Hayward did his best not to break the illusion, and did so smoothly enough that she seemed not to notice.

Some time later, Hayward was called for his blood draw. He returned to find the mother comforting her daughter, as she had not done before. The little girl was crying again, but it was a comforted crying, a world of difference from when she was alone with really quite vile pain. The mother seemed awestruck, and kept saying, “You have a very gentle way about you.”

Another time, Hayward was asked to substitute-teach a class for parents of English as a Second Language students. He was provided an interpreter who spoke Spanish and English, and the class met all objectives…

And Hayward didn’t really use the interpreter. He adapted to language and culture to bring an enjoyable class for everyone.

When studying abroad, Hayward was quite pleasantly surprised (and very much surprised) when a Ghanain housemate said Hayward had challenged some assumptions, saying Hayward was “like a white American, and like a black African, closer than an African brother…” and from that point on he enjoyed insider status among Ghanian friends. He has perhaps never received a greater compliment.

Hayward thinks at a fundamentally different level, and he needs to build bridges. But the good news is that he has been working on bridge-buildling for years and built bridges that span great differences. Being in a situation where has to orient himself and bridge a chasm doesn’t really slow him down that much.

In addition, these “super powers” can have every relevance to business work. No employer particularly cares if he can read ancient and medieval languages: but one employer cared that he could easily read bureaucratic documentation that was incomprehensible to everyone else.

No employer really cares that at the age of 13 Hayward crafted crafted a four-dimensional maze, worked on visualizing a 4-cube passing through 3-space, and looked at a data visualization in his calculus book and (re)invented iterated integration…

But some employers care a great deal that he can take a visualization project, start work along the lines suggested by Tufte’s corpus of written work, and start to take steps beyond Tufte.

No employer really seems to care that he has studied at the Sorbonne, UIUC, and Cambridge (England) in three very different fields: but co-workers have been puzzled enough that he so effortlessly shifts his communication and cultural behavior to have a colleague and immigrant ask him why he relates to Little Russia’s culture so well.

But some employers appreciate his efforts to listen and understand corporate culture. In serving like a consultant for a travel subsidiary, Hayward’s contacts within the organization that picked up he was trying to understand their language on their terms, and the Director of Sales and Marketing half-jokingly asked, “Do you want to be a travel agent?” Hayward perhaps would not be an obvious fit for personality factors, but she picked up a crystal-clear metamessage: “I want to understand what you are saying, and I want to understand it on your terms.”

Furthermore, while no employer has yet to care about Hayward’s interest in writing, one employer cared a great deal that he took a high-value document concerning disaster recovery and business continuity, valuable enough that it would be significant for the employer to file with e.g. their bank, and took it from being precise but awkward and puzzling to read, to being precise, accessible, simple, and clear.

What does this communication across barriers have to do with UX?

Everything.

I’ve had postgraduate training in anthropology, cognitive science, computer science, philosophy, and psychology, and I consider “theory of other minds” communication to be out-and-out the central skill in UX. Perhaps the most structural of these disciplines is anthropology, and a training in anthropology is a training in understanding across differences.

Once anthropologists found difference by crossing the Pacific and finding aboriginal people untainted by modern technology. Now anthropologists find difference by crossing the street. But the theory of alien minds is almost unchanged.

Jakob Nielsen has been beating for essentially forever the drum of “You are not a user”. Perhaps his most persistent beating of his drum is:

One of usability’s most hard-earned lessons is that ‘you are not the user.’ If you work on a development project, you’re atypical by definition. Design to optimize the experience for outsiders, not insiders.

What this means, in competency, is “Communicate out of a theory of alien minds.” Or, if you prefer, a theory of “outsiders”, but don’t assume that deep down inside “outsiders” are really just like “insiders.” Exercise a theory of alien minds.

What Nielsen is telling people not to do is coast on a “theory of like minds,” and assume that if a user interface is intuitive and makes sense to the people who built it, it will just as much make sense to the audience it was built for. It won’t. You have to think a bit differently to build technology, and that means you need a theory of alien minds. Assuming that you are the center of the universe, even if it’s unintentional, is a recipe for failed UX. We all want better than that.

So, You’ve Hired a Hacker

So you’ve hired a hacker (revised and expanded)

CJSH.name/hacker

There is a wonderful variety among humans. Ethnicity and culture provide one of the most important dimensions—but there can be profound differences between two people who look the same. If neither appreciates the differences, and thinks, “He’s just like me—only not doing a very good job of it,” there will be conflicts that can be prevented. If they understand their differences, both can profit. This document is written so that you can understand your hacker and enjoy a more productive working relationship.

Managers and hackers both vary, but there are some things that come up again and again. That’s why this document exists. I am concerned with a particular kind of clash that most hackers have with many managers—a conflict that is more easily resolved if both parties understand each other.

What are some of the common differences between managers and hackers? There are several, but let me list five important ones:

Managers Hackers
Tends to be very concerned with morality, and wants to connect with society and contribute. Rises to positions of responsibility, not only in business, but in church and volunteer organizations. Lives by responsibility and duty. Intent on cultivating knowledge and skill. Rises to tremendous levels of competency with technology and other things. High level of discipline used to continually refine abilities.
Thinks concretely. Good at small talk, and at the logistical details needed to run a business. Thinks abstractly. Good at deep discussions, and thinking about the hard concepts needed to work with technology.
Measures own contribution to society by the extent to which he adds to rules and sees that people live by following rules. Tends to equate rules with morality or the good of society. Far more aware of the limitations of rules. Does not equate rules with morality or the good of society. Very likely to notice rules that are hurting your company—yes, they do exist, and they’re more common than you think.
Closely resembles about 40% of the population; most people have dealt with many similar people before, and can easily understand managers. Thinks in an uncommon way found in perhaps 5% of the population; will encounter many people who have never known well anyone who is similar. Can’t count on other people understanding him.
Is such a dominant force in human society that he can easily forget that others might be different. Works well with people because of how much he holds in common with so many others. Needs to work at understanding people like hackers. May have intense powers of concentration. Prizes an offbeat and clever sense of humor. At times, painfully aware of inconsistencies that are invisible to the people who are acting hypocritically. Marches to the beat of a different drummer, and needs to work at understanding people like managers.

Managers and hackers complement each other. If they work at it, they can enjoy a long and fruitful working relationship.

Questions and Answers:

Section 1: Basic Understanding

1.1: Won’t my hacker break into my computer and steal my trade secrets?

Point of clarification. There are two communities of people that call themselves ‘hackers’.

One of these groups is the one you’ve heard about—those who take pride in breaking into other people’s computers. That is all the media understands ‘hacker’ to mean, but there is another community, an older and much more interesting one, that is insulted by being mistaken for the first community. They are as insulted as an automotive engineer would be if the media said ‘automotive engineer’ when they meant ‘car thief’, and the engineer learned through bitter experience that, whenever he told people he was an automotive engineer, people thought he was only a car thief.

Your hacker is an automotive engineer, not a car thief. He is a hacker because he loves computers, and loves to do impressive things with them. He doesn’t want to steal your trade secrets, and it would be good manners of you not to confuse “automotive engineer” hackers with “car thief” hackers—whom he refers to as ‘crackers’, or the extremely pejorative ‘script kiddies’.

1.2: Was it a good idea to hire a hacker?

It depends on the job. A hacker can be dramatically more effective than a non-hacker at a job, or dramatically less effective. Jobs where hackers are particularly good are:

  • Systems administration
  • Programming
  • Design
  • Web-related development

Jobs where hackers are particularly bad are:

  • Data entry
  • “Computer operator”, where the “computer operator” has to use software (especially Microsoft software) that he can’t improve.

More generally, a job that requires fast and unexpected changes, significant skill, talent, and is not very repetitive will be one a hacker will excel at. Repetitive, simple jobs are a waste of a good hacker, and will make your hacker bored and frustrated. No one works well bored and frustrated.

The good news is, if you get a hacker on something he particularly likes, you will frequently see performance on the order of five to ten times what a “normal” worker would produce. This is not consistent, and you shouldn’t expect to see it all the time, but it will happen. This is most visible on particularly difficult tasks.

1.3 Wait, you just said “ten times”, didn’t you? You’re not serious, right?

Yes, I am serious; a hacker on a roll may be able to produce, in a period of a few months, something that a small development group (say, 7-8 people) would have a hard time getting together over a year. He also may not. Your mileage will vary.

IBM used to report that certain programmers might be as much as 100 times as productive as other workers, or more. This kind of thing happens.

1.4 How should I manage my hacker?

The same way you herd cats. It can be quite confusing; they’re not like most other workers. Don’t worry! Your hacker is likely to be willing to suggest answers to problems, if asked. Hackers are known for coming together and producing impressive software without any business people to tell them what to do. That’s how Perl was produced. And Linux. And quite a few other things, great and small. Most hackers are nearly self-managing.

1.5 I don’t understand this at all. This is confusing. Is there a book on this?

There are several books that explain important pieces of the puzzle, and some of them are listed in a reading list below. If you read from the list and ask your hacker to help you connect the dots, you’ve got a good chance at understanding your hacker much better.

Section 2: Social issues

2.1: My hacker doesn’t fit in well with our corporate society. She seems to do her work well, but she’s not really making many friends.

This is common. Your hacker may not have found any people around who get along with hackers. You may wish to consider offering her a position telecommuting, or flexible hours (read: night shift), which may actually improve her productivity. Or, even better, hire another one.

2.2: My hacker seems to dress funny. Is there any way to impress upon him the importance of corporate appearance?

Well… let’s look at your view of clothing first, so that you’ll have a better chance at understanding how your hacker sees things differently.

You believe in showing respect for the company and those you work with. To you, much of that respect revolves around little details. These details are to you much of the substance of respect—such as that classy suit you wear to the office. So when a hacker wears jeans and a t-shirt to work, he must be showing disrespect, right?

Not really. Those jeans—kneeholes and all—are what he wears to see his best friend, whom he respects deeply. If your hacker happens to be a Christian, he may wear jeans and a T-shirt to church on Easter. I sometimes do, and when I dress up for church, it is more to avoid distracting other churchgoers than any need of fancy clothes in order to worship God. Hackers look past appearances, and it seems strange to them that you think they need uncomfortable clothes to work well: if it’s what’s inside the clothing that matters, why not wear something comfortable and be able to concentrate better?

If your hacker isn’t dressing up, how can he still respect your company? He works hard, solves problems, and probably thinks about ways to help your company be more productive—even when he’s at home. If he wants to wear comfortable clothing at work, it’s not disrespect; he just understands what IBM, Microsoft, and Ford all recognize: employees are most productive when they choose what to wear—not their company. If you ask your hacker respectfully, he’ll probably wear clothing without any holes, and might even dress up for a few special occasions.

Your suit is a professional asset. It helps other people see your professionalism. Your hacker’s t-shirt is also a professional asset. It’s part of a culture that judges a person by what’s inside his clothing, and he works better when comfortable. He doesn’t try to get you to dress like him; why don’t you extend the same courtesy to him?

2.3: My hacker won’t call me by my title, and doesn’t seem to respect me at all.

Your hacker doesn’t respect your title. Hackers don’t believe that management is “above” engineering; they believe that management is doing one job, and engineering is doing another. They may well frequently talk as if management is beneath them, but this is really quite fair; your question implies that you talk as if engineering is beneath you. Treat your hacker as an equal, and she will probably treat you as an equal—quite a compliment!

2.4: My hacker constantly insults the work of my other workers.

Take your hacker aside, and ask for details of what’s wrong with the existing work. It may be that there’s something wrong with it. Don’t let the fact that it runs most of the time fool you; your hacker is probably bothered by the fact that it crashes at all. As your customers will be—consider your hacker to be an early warning system. He may be able to suggest improvements which could dramatically improve performance, reliability, or other features. It’s worth looking into.

You may be able to convince your hacker to be more polite, but if there appear to be major differences, it’s quite possible that one or more of your existing staff are incompetent by his standards. Note that hackers, of course, have different standards of competence than many other people. (Read “different” as “much higher”.) Is this necessarily appropriate? All people have weaknesses. It would perhaps be nicer if hackers were more charitable to people who can’t match their talent, but you’re lucky to have someone on staff who’s competent enough for this to be a problem.

Section 3: Productivity

3.1: My hacker plays video games on company time.

Abraham Lincoln said, “If I had ten hours to chop down an oak tree, I’d spend the first eight sharpening my axe.”

Some jobs are done best by getting your hands dirty immediately: if you hire a kid to rake your leaves, you probably want him to start raking as soon as he arrives. But if you contacted a building contractor to make a new office building in the morning, and he was pouring concrete by the end of the day, you would not be impressed—at least not in a good way. Something is very wrong: there are all sorts of things that need to happen first. If your contractor begins work by pouring concrete, you will end up paying for some very expensive mistakes that could have been completely avoided by simple preparation.

Your hacker is probably honest, too honest to start off by writing poor-quality code “so my manager will think I’m working.” He’d rather be productive and spend two weeks preparing rather than two years fixing needless mistakes.

Perhaps it would be easier if hacker ways of preparation coincided with what you do when working—writing memos or something like that. But there is an elusive productive zone, and your hacker is doing whatever he can to gain that productivity. I often write best after taking meandering walks—and, if you have difficulty believing that walks are a way to produce something good, I’d encourage you to read A Dream of Light—which, walks and all, took me very little time to write. I averaged over ten times the normal speed of a professional writer. Your hacker who plays games on company time is using the same areas of his mind as I did. Your hacker is sharpening his axe, and it’s a good idea for him to do so.

Hackers, writers, and painters all need some amount of time to spend “percolating”—doing something else to let their subconscious work on a problem. Your hacker is probably stuck on something difficult. Don’t worry about it.

3.2: But it’s been two weeks since I saw anything!

Your hacker is working, alone probably, on a big project, and just started, right? She’s probably trying to figure it all out in advance. Ask her how it’s going; if she starts a lot of sentences, but interrupts them all with “no, wait…” or “drat, that won’t work”, it’s going well.

3.3: Isn’t this damaging to productivity?

No. Your hacker needs to recreate and think about things in many ways. He will be more productive with this recreation than without it. Your hacker enjoys working; don’t worry about things getting done reasonably well and quickly.

3.4: My hacker is constantly doing things unrelated to her job responsibilities.

Do they need to be done? Very few hackers can resist solving a problem when they can solve it, and no one else is solving it. For that matter, is your hacker getting her job done? If so, consider these other things a freebie or perk (for you). Although it may not be conventional, it’s probably helping out quite a bit.

3.5: My hacker is writing a book, reading USENET news, playing video games, talking with friends on the phone, and building sculptures out of paper clips. On company time!

He sounds happy. The chances are he’s in one of three states:

  • Basic job responsibilities are periodic (phone support, documentation, et al.) and there’s a lull in incoming work. Don’t worry about it!
  • Your hacker is stuck on a difficult problem.
  • Your hacker is bored silly and is trying to find amusement. Perhaps you should find him more challenging work?

Any of these factors may be involved. All of them may be involved. In general, if the work is challenging, and is getting done, don’t worry too much about the process. You might ask for your corporation to be given credit in the book.

3.6: But my other workers are offended by my hacker’s success, and it hurts their productivity.

Do you really need to have workers around who would rather be the person getting something done, than have it done already? Ego has very little place in the workplace. If they can’t do it well, assign them to something they can do.

Section 4: Stimulus and response

4.1: My hacker did something good, and I want to reward him.

Good! Here are some of the things most hackers would like to receive in exchange for their work:

  • Understanding.
  • Understanding.
  • Understanding.
  • Respect.
  • Admiration.
  • Compliments.
  • Discounts on expensive toys.
  • Money.

The order is approximate, but the most important one is the most difficult. If you can give that to your hacker, in his eyes you will be a cut above most other bosses—and he just might work for you longer.

Try to remember this good thing your hacker just did the next time you discover he just spent a day playing x-trek. Rather than complaining about getting work done, write it off as “a perk” that was granted (informally) as a bonus for a job well done. Don’t worry; hackers get bored quickly when they aren’t doing their work.

4.2: My hacker did something bad, and I want to punish him.

Don’t. 30 years of psychological research has shown that punishment has no desirable long-term effects. Your hacker is not a lab rat. (Even if he were a lab rat, punishment wouldn’t work; at least, not if he were one of the sorts of lab rats the psych research was done on.) If you don’t like something your hacker is doing, express your concerns. Explain what it is that bothers you about the behavior.

Be prepared for an argument; your hacker is a rational entity, and presumably had reasons. Don’t jump on him too quickly; they may turn out to be good reasons.

Don’t be afraid to apologize if you’re wrong. Your hacker will never think less of you if you admit to a mistake. He might be disappointed if you’ve made a mistake and can’t admit it, but he will never look down on you for admitting you were wrong. If your hacker admits to being wrong, don’t demand an additional apology; so far as the hacker is concerned, admitting to being wrong probably is an apology.

4.3: I don’t get it. I offered my hacker a significant promotion, and she turned it down and acted offended.

A promotion frequently involves spending more time listening to people describing what they’re doing, and less time playing with computers. Your hacker is enjoying her work; if you want to offer a reward, consider an improvement in title, a possible raise, and some compliments. Make sure your hacker knows you are pleased with her accomplishments—that’s what she’s there for.

4.4: My company policy won’t let me give my hacker any more raises until he’s in management.

In the Bible, Paul describes roles in the Christian church, and then compares these community members to parts of the human body (I Corinthians 12:14-26, NIV):

Now the body is not made up of one part but of many. If the foot should say, “Because I am not a hand, I do not belong to the body,” it would not for that reason cease to be part of the body. And if the ear should say, “Because I am not an eye, I do not belong to the body,” it would not for that reason cease to be part of the body. If the whole body were an eye, where would the sense of hearing be? If the whole body were an ear, where would the sense of smell be? But in fact God has arranged the parts in the body, every one of them, just as he wanted them to be. If they were all one part, where would the body be? As it is, there are many parts, but one body.

The eye cannot say to the hand, “I don’t need you!” And the head cannot say to the feet, “I don’t need you!” On the contrary, those parts of the body that seem to be weaker are indispensable, and the parts that we think are less honorable we treat with special honor. And the parts that are unpresentable are treated with special modesty, while our presentable parts need no special treatment. But God has combined the members of the body and has given greater honor to the parts that lacked it, so that there should be no division in the body, but that its parts should have equal concern for each other. If one part suffers, every part suffers with it; if one part is honored, every part rejoices with it.

This is a deep insight into human community. It’s not just about religion. Executives, managers, programmers, salespeople, secretaries, and other employees all contribute something fundamental to a company. Janitors? Those people are important? Well, if janitors aren’t important, firethem, and streamline your business. The halls may be a bit stinky with all that rotting trash, and two of the secretaries may sneeze every time someone walks by and kicks up dust. Your insurance covers emergency treatment and rabies shots when a rat creeps out of a mound of garbage and bites you, right? Your star saleswoman couldn’t close a key sale because she was in the hospital with food poisoning after… wait a minute. Maybe those janitors we all look down on deserve a second look. Maybe they contribute more to the physical well-being of other employees than almost anyone else you have on staff. Maybe they’re important after all.

Eye, hand, stomach, and sturdy back muscles all contribute something. Sometimes the observation—”My group adds something unique and vital, something that no other department gives.”—to a conclusion that is not justified: “My group’s contribution to the company is better and more important than anyone else.”

This conclusion also affects how companies allocate money: the people who set salaries believe they’re the most important employees. Because it’s management who sets the salaries, the belief:

A manager is a more important employee than a non-manager

creates a policy like

Every manager must be paid more than any non-manager

or

No matter how much an employee does for the company, there’s an artificial limit on how much you can reward him unless he gives up his work, which he is good at, and becomes a manager instead.

If that’s what you believe—a prejudice that would shock any true leader—then I don’t think I can help you much. I would simply encourage you to finish the job. Send a memo out to all employees saying:

We believe that every manager makes a more important contribution to this company than any non-manager. If you’re not a manager, you’re only a second-class citizen with our company. If you don’t like this, you can leave.

And be ready for an exodus. Your hackers won’t be the only ones to decide you’re too stupid to work with. They’ll just be the first.

Does that sound unattractive? You do have a better alternative. Your hacker can quite possibly earn $200/hour or more, if he wants—his talents are worth it. If your company policy imposes a salary ceiling on non-managers, your company policy is broken. Fix your company policy, find a loophole (say, a consultant given a contracted permament consulting position with benefits), or else get ready to have one of your most productive employees leave because your company policy is broken and you couldn’t work around it.

I can’t believe the hacker on my staff is worth as much as we’re paying.

Ask the other in the staff what the hacker does, and what they think of it. The chances are that your hacker is spending a few hours a week answering arcane questions that would otherwise require an expensive external consultant. Your hacker may be fulfilling another job’s worth of responsibilities in his spare time around the office. Very few hackers aren’t worth what they’re getting paid; they enjoy accomplishing difficult tasks, and improving worker efficiency.

Section 5: What does that mean?

5.1: My hacker doesn’t speak English. At least, I don’t think so.

Your hacker is a techie, and knows a number of powerful concepts that most English-speakers don’t know. He also knows words for those concepts. Guess what? The concepts are unusual concepts, and the words are unusual words. He doesn’t use standard words for many things because there aren’t any standard words to explain the cool things he does.

Your best bet is to pick up a copy of TNHD (The New Hacker’s Dictionary). It can be found at http://catb.org/jargon or from a good bookstore. If you have trouble understanding that reference, ask your hacker if she has a copy, or would be willing to explain her terms. Most hackers are willing to explain terms. Be ready for condescension; it’s not intended as an insult, but if you don’t know the words, she probably has to talk down to you at first to explain them. If you’re bothered by this, think about explaining to a non-professional how to keep a project on task—if you can’t use any words longer than five letters. That’s what your hacker is doing when she tries to explain technical concepts in non-technical words. Please understand if she sounds a little condescending.

It’s a reasonably difficult set of words; there are a lot of them, and their usage is much more precise than it sounds. Hackers love word games.

It is also possible that English is not your hacker’s native language, and that it’s not yours either. Feel free to substitute a more appropriate language.

5.2: I can’t get an estimate out of my hacker.

This is easier to understand with an analogy. Imagine two situations:

In the first situation, you drive for work on the same roads, at the same time, as you have for the past five years, and listened to the traffic report in the shower.

In the second situation, you are out in the middle of nowhere, travelling to see a distant relative, and you realize that you’ve forgotten to buy a hostess gift for the people you’re driving to visit. You stop by a gas station to ask where you can find a gift shop which would sell a dolphin statuette. The attendant says, “Take the road you’re on, and turn off onto the second side street you see. Keep on going until you hit the second stop sign after John’s general store. It’s in the third town you’ll see.”

Now, in both cases, think about answering the question, “How long will it take?”

In the first case, you probably know the answer: “Twenty-six minutes, twenty-two if I hit the lights right.” In the second case—well, given that you don’t know how long the route is, what the speed limits are, or how you will find the sign once you reach the right town, the best answer is, “I don’t know.”

When you ask a hacker how long a task will take and he says, “I don’t know,” he isn’t being difficult. Fixing a broken network, when you don’t know why it’s down, is much more like the second situation than the first. You don’t need to throw a pity party for your hacker because he has to work in unfamiliar territory and doesn’t even know how long a task will take. He doesn’t look at it that way; he likes the challenge. But it does mean that he accepts tasks before he knows exactly how he’ll do them, and he is responsible enough to say “I don’t know,” and not tell you something he’s simply made up. Your hacker is a driver who thrives on finding his way in unfamiliar territory, with washed-out bridges and incomplete directions among the surprises. You might be glad you have someone who likes that kind of assignment.

Your hacker hasn’t figured out how hard the problem is yet. Unlike most workers, hackers will try very hard to refuse to give an estimate until they know for sure that they understand the problem. This may include solving it.

No good engineer goes beyond 95% certainty. Most hackers are good engineers. If you say that you will not try to hold him to the estimate (and mean it!) you are much more likely to get an approximate estimate. The estimate may sound very high or very low; it may be very high or very low. Still, it’s an estimate, and you get what you ask for.

5.3: My hacker makes obscure, meaningless jokes.

Another one that’s a little hard to explain.

Imagine that you are visited by a brilliant wayfarer. He strives to understand those around, silently tolerates a great many things that seem strange to him, and brings with him cultural treasures unlike anything your culture has to offer. One day, he tries to share some of them with you. Should you be bothered?

That’s what’s happening when your hacker tells you obscure technical jokes. He could be trying to make you feel stupid, but let’s be charitable. Your hacker is uncommonly intelligent—he might be a member of Mensa. Intelligent people think a little bit differently, and a genius may seem like someone from another world. Your hacker probably understands you better than you understand him—and when he shares jokes with you, he’s giving you a chance to see something special. If you feel brave, you might even ask him to explain some of them.

But don’t be bothered when he tells you jokes that take a while to explain. Some of them are quite interesting.

5.4: My hacker counts from zero.

So does the computer. You can hide it, but computers count from zero. Most hackers do by habit, also.

Section 6: Is there anything else I should know?

6.1: I’ve found this document to be tremendously helpful. Is there anything I can do to say thank-you?

Wonderful of you to ask, and you certainly can. There are two authors who’ve contributed to this document, an original and a revision author. Both would appreciate cash donations (e-mail the original/revision authors for details). The revision author would be very happy to receive a link to his home page: C.J.S. Hayward (Browse around and see what he has to offer!)

You might also consider buying a couple of books through the links on these pages; you get cool books, and the authors get pocket change. 🙂 The books listed in the original version will give money to the original author, while the books added in the revision will give money to the revision author.

If you’d like to give something to one of the authors, but don’t know which, why not flip a coin?

6.2: Are there any books that will help me understand my hacker?

Excellent question. Yes, there are. The following list is suggested:

  • Please Understand Me or Please Understand Me II

    What I said above about common manager/hacker differences was drawn from Please Understand Me as well as experience. Most hackers are intuitive thinking types, while managers who are confused by hackers tend to be sensate judging types. If you’re in a hurry, buy Please Understand Me and read the descriptions for sensate judging and intuitive thinking types. You may find them tremendously helpful in understanding hackers. I’ve found them tremendously helpful in understanding managers.

    Please Understand Me came out in the 1970s and describes what people are like. Please Understand Me II came out in the 1990s and describes both what people are like and what they can do. (It’s about twice as long.) I prefer Please Understand Me.

  • The New Hacker’s Dictionary

    Read the introduction and appendices; they’re worth their weight in gold. Then read a definition a day—you’ll learn a lot. This book is probably the #1 hacker classic, and provides an invaluable asset into understanding hacker thought. Don’t worry if parts of it are hard to understand—you’ll still learn something, and your hacker can probably explain the harder parts.

  • Stranger in a Strange Land or Firestorm 2034

    Stranger in a Strange Land is a classic novel about a person who is raised by Martians and is brought to earth, a Martian mind in the body of a young man. There are not any hackers in this story, but if you can understand the protagonist in this story, you may find it much easier to understand and appreciate your hacker. Think of it as driving an automatic after you’ve learned to drive a stick.

    Firestorm 2034 is a story about a medieval genius brought to the 21st century. He is traumatized by his first contacts with computers, but grows to be fascinated, and learns to program. The reader is with him as he understands technology and makes a discovery in artificial intelligence. This book was written to convey insight into certain kinds of people. If you read it, you should find it easier to understand your hacker—and perhaps grasp technology a little better, to boot! It is my second novel.

    Ok, why is an unknown author putting his book next to a Heinlein classic? A few reasons:

    • It draws heavily on Heinlein’s work.
    • It’s less than a third as long as Stranger. To a busy leader, that counts for a lot.
    • It’s written by someone who understands technology, and who weaves technology deeply into the story.
    • Readers like it. One actually said he liked it better than Stranger.
    • There’s less stuff that’s likely to offend you.
    • I have been published in more than one respected journal. The editor of the high-IQ journal Ubiquity saw my work, and asked to feature me in their fall/winter 2001 issue—with a biography, a few writings, a painting, and a four dimensional maze. I’m not completely unknown as an author.

    But it’s your call which novel to read—and I won’t question your judgment if you choose Stranger.

  • Guiding the Gifted Child

    This award-winning title is a very practical book because it conveys understanding. It does a good enough job of it to be useful to several different kinds of people. It will help you understand the sort of people who become hackers.

    This also is the only book on this list specifically intended to help people guide hacker-like people.

  • The Cathedral and the Bazaar

    Perhaps this has happened already. Or perhaps it will happen any day.

    You try to reason with your hacker, and say, “Windows was made by the heavily funded efforts of a major corporation. Linux was made by some programmers on their spare time, and you can get it for free. Is Linux really as good as Windows?”

    Your hacker rolls his eyes, appears to be counting to ten, gives you a very dirty look, and slowly says, “Is the upcoming band performance next door—live, in concert—really as good as this scratched-up CD?”

    Your hacker believes that open source software is normally better than Microsoft, and has very good reason to do so. This book explains why—and it may help you to get better software for less money, and put your business in a more competitive position. As far as hacker culture goes, it only illuminates a small part, but it does so very well.

Unfortunately, none of these books was specifically written to explain hacker culture to non-hackers. Fortunately, your hacker can help you connect the dots and put things together. Just ask him!

6.3: Has this FAQ been published?

The original version, in some form, has been bought by IBM DeveloperWorks, which funded part of the work. You could read their version (nicely edited) by following this link (non-functional as of 12/31/01; I’ve contacted IBM requesting a current URL and am waiting to hear back). IBM has also bought another article, the Manager FAQ, a guide to managers for hackers who are frustrated and confused by corporate life. The original author is justifiably happy with his work.

I am working towards publishing the revised and expanded version.

What’s the copyright status on this? Can I make copies and share it with a friend who’s confused by his hacker?

You may distribute as many copies of this document as you want. The original FAQ has the following notice:

This document is copyright 1995, 1996, 1998, 1999 Peter Seebach. Unaltered distribution is permitted.

When I let the original author know I was interested in a revision, and asked what the copyright status was, he said it was covered by the Artistic License. All changes in this revision are also covered by the Artistic License, all added material copyright 2001 by C.J.S. Hayward. Distribute freely.

What’s the author’s e-mail, and what’s the official distribution site?

The original is officially distributed at http://www.plethora.net/~seebs/faqs/hacker.html by seebs@plethora.net, and the revision is at CJSHayward.com/hacker/ by jshayward@pobox.com.

Are there any people the revision author would like to thank?

Yes. C.J.S. Hayward would very much like to thank the original author, Peter Seebach, for writing an excellent FAQ and for giving him permission to modify it.

Any disclaimers?

DISCLAIMER: Both authors are hackers. Bias is inevitable.

Revision 1.0—Last modified June 9, 2001

Ajax without JavaScript or Client-Side Scripting

Hayward\s free intranet employee photo directory

Usability for hackers: Developers, anthropology, and making software more usable

Usability, the soul of Python: An introduction to the Python programming language

Usability for Hackers: Developers, Anthropology, and Making Software More Usable

CJSH.name/usability

Usability begins with anthropology

… and hackers have a good start on anthropology

If you’re reading this text, there’s a good chance that you are already halfway to being an anthropologist. Note: for the purposes of this chapter, ‘anthropology’ is used to refer to cultural anthropology. Other anthropological disciplines exist, but it is cultural anthropology and its techniques which are most directly relevant here.

How could an author know that you are probably at least half an anthropologist? Let’s turn the question around, and suppose you are a Python hacker. Why are you reading this article? Visual Basic .NET has enormous marketing muscle behind it, possibly eclipsing the marketing budgets for all open source technologies put together. Guido van Rossum holds a dim view of marketing, as does much of the Python community. Monster.com lists three thousand Visual Basic positions, almost five thousand .NET positions, but only one thousand Python positions. Why are you reading a “usability for hackers” article when you could be reading a title like Completely Master Visual Basic in Thirty Seconds or Less?

You are probably a hacker. It does not matter if you were mortified when you found out the preferred JavaScript technique to create an object with fields that aren’t globally accessible variables, or if you wince when you hear of a devious way to get technology to do things that shouldn’t be possible, or if you have no desire to be considered a 133t hax0r. You’re probably a hacker. The classic “How to Become a Hacker” for the most part outlines things that have a very obvious relationship to being a hacker: attitudes towards technical problem solving, or learning an open source Unix, learning to program and contribute to the web, and so on and so forth. Towards the end there is a particularly interesting section because on the surface it looks completely beside the point. The section is titled “Points for Style,” and mentions learning to write well, reading in science fiction, training in martial arts, meditation, music (preferably obscure), and wordplay. Other things could be added: avoiding mainstream TV or having arcane hobbies and interests, for instance, so that in a social context hackers may ask each other questions about obscure hobbies as a rough social equivalent to, “What’s your favorite TV show?”

Not that any of these is necessary to be a hacker, but together these common trends point to a personality profile that can learn the anthropological style of observation relevant to usability work much more easily than the general public, or even Joe Professional Programmer who regards learning new technologies as a necessary evil rather than a joy, works in Visual Basic .NET after being swayed by advertising, goes home and watches TV after work, has probably never heard of ThinkGeek, and would probably rather do gift shopping at Walmart even if he does know of ThinkGeek.

All of this is to say that the culture surrounding you is not like water to a fish. It is a basic fact of life that you don’t automatically share the perspective of others. Cross-cultural experience or ethnic minority status may accentuate this, but this is true even if you’re not (regarded as) a minority. And this kind of experience provides a very good foundation for anthropological ways of understanding exactly how you are not a user and users don’t think like you.

Anthropological usability techniques

An introductory example: Card sorting

One basic challenge for organizing a site’s information architecture is the taxonomy, or way of breaking things down. If one is asked what an example of a good taxonomy, one example of a taxonomy par excellence is the biological taxonomy that organizes all the way from kingdoms down to species or subspecies and varieties. And indeed that is one kind of taxonomy, but it is not the only possibility. If one is asked to break down a list of a fork, spoon, plate, bowl, soup, and macaroni and cheese, one obvious way is to put the fork and spoon together as cutlery, the plate and bowl together as dishware, and the soup and macaroni and cheese together as food. But this is not the only basic way, and it can make sense to put the fork, plate, and macaroni and cheese together as representing one complete option, and the spoon, bowl, and soup together as representing another basic option. Stores and websites that have adopted the latter approach, such as a gardening store or website that organizes its products according to the type of garden a customer is trying to make and what the customer is trying to do, see a significant increase in sales. Even biology could use other complementary technologies: a taxonomy that classified organisms according to both ecosystems and their roles within their ecosystems and ecological subsystems could say something very valuable that the eighteenth century classification wouldn’t.

In terms of websites, an information architecture that corresponds to the organization’s org chart is never a helpful choice. Even when we are talking about an intranet intended only for organizational insiders, one section or subsite for each department is not the right choice: one better option would be to support workflow and design around the tasks that employees will be doing with the intranet.

What is the best information architecture? That’s not a question to answer by looking something in a book or even thinking it out; it is something that we should work out based on what we observe doing research, even if we also read and need to do a bit of thinking. And this is the best practice across the board for usability.

One valuable exercise to help guide information architecture design is called card sorting. In this exercise, we get a stack of index cards, perhaps 3×5″, and write the individual names of different pieces of functionality the website should offer, trying to name things neutrally so that the names do not have common terms suggesting how certain parts belong together. Then we shuffle and lay out the cards, and individually ask subjects (people who will participate in an experiment and who are not insiders, whether employees of your organization for an external website, or information technology professionals) to organize them so that cards that belong together are put in the same stack.

Then we note which cards have been placed together, thank the subject, and move on to the next person.

On looking through the notes, we may see a few things. First, not all people think the same. We will likely see some breakdowns that are very similar, but there will likely be two or more breakdowns as fundamentally divergent as our breakdowns of the fork, spoon, plate, bowl, soup, and macaroni and cheese. Second, there will probably be a breakdown that simply catches us off guard. And this is good; it means the exercise is working.

After doing this, we can go about looking for a preferably standard information architecture that will gracefully serve the major ways we observed of breaking things down.

Focus groups: Cargo cult research for usability

With an eye to how to best approach observation, we would like to take a moment to talk about Coca-Cola’s blunder with “New Coke” and explain why focus groups, bringing in a group of people and asking them what they want, are deprecated as a recipe to make products that look good on paper but don’t wear well in normal use. For those of you who don’t remember the uproar some years back, the Coca-Cola company announced that it was switching to a new and improved formula, and there was massive public outlash from people who wanted the old Coke back. (Now the company sells both the old formula as Coke Classic and the new formula as Coke II, and Coke Classic is vastly more popular.)

Why would the Coca-Cola company announce it was terminating its cash cow? The answer is that it did naïve marketing research, ran taste tests, and asked members of the public which they would choose: the formula today sold as Coke Classic, or the formula today sold as Coke II. The rather clear answer from the taste tests was that people said they would rather have the new formula, and it was a clear enough answer that it looked like a sensible course of action to simply drop the second-best formula. It wasn’t until everybody could see that the Coca-Cola company had given itself a PR black eye that the company woke up to a baseline observation in anthropology: the horse’s mouth is a vastly overrated source of information. Most anthropological observation, including the kinds relevant to usability, are about paying close attention to what people do, and not be too distracted by their good faith efforts to explain things that are very hard to get right.

Anthropological observation: The bedrock of usability

There is more than one way to see the same situation

The kind of observation needed is probably closest to the anthropological technique of participant observation, except that instead of participating in using software or a website, we are observing others as they use software. Half the goal is to understand how the same thing can be observed differently. To quote from James Spradley’s Participant Observation, which is an excellent resource:

One afternoon in 1973 I came across the following news item in the Minneapolis Tribune:

Nov. 23, 1973. Hartford, Connecticut. Three policemen giving a heart massage and oxygen to a heart attack victim Friday were attacked by a crowd of 75 to 100 people who apparently did not realize what the policemen were doing. Other policemen fended off the crowd of mostly Spanish-speaking residents until an ambulance arrived. Police said they tried to explain to the crowd what they were doing, but the crowd apparently thought they were beating the woman.

Despite the policemen’s efforts the victim, Evangelica Echevacria, 59, died.

Here we see people using their culture. Members of two different groups observed the same event but their interpretations were drastically different. The crowd used their cultural knowledge (a) to interpret the behavior of the policemen as cruel and (b) to act on the woman’s behalf to put a stop to what they perceived as brutality. They had acquired the cultural principles for acting and interpreting things this way through a particular shared experience.

The policemen, on the other hand, used their cultural knowledge (a) to interpret the woman’s condition as heart failure and their own behavior as life-saving effort and (b) to give her cardiac massage and oxygen. They used artifacts like an oxygen mask and ambulance. Furthermore, they interpreted the actions of the crowd in an entirely different manner from how the crowd saw their own behavior. The two groups of people each had elaborate cultural rules for interpreting their experience and for acting in emergency situations, and the conflict arose, at least in part, because these cultural rules were so different.

Before making my main point, I would simply like to comment that the Spanish-speaking crowd’s response makes a lot more sense than it would first seem. It makes a lot of sense even on the assumption that the crowd did in fact understand the police officer’s explanation that they “apparently did not understand.” What the article explicitly states is that the police officers were using an oxygen mask, and that is a device that needs to be pressed against a person’s face and necessarily cover the same parts of a person’s face one would cover to try to cause suffocation. If you’re not expecting something like that, it looks awfully strange. Furthermore, although I do not know whether this actually happened, it is standard operating procedure to many emergency medical technicians and paramedics who perform CPR to cut off the person’s top completely, palpate to the best place to place one’s hands, and mark the spot with a ball-point pen. This may or may not have happened, but if it did, it is appropriate enough for neighbors to view it as an extreme indignity. Lastly, although today’s best practices in CPR are more forceful than was reccommended in the past, “heart massage” is a technical term that does not refer to anything like softly kneading a friend’s shoulder. The people I have met who do CPR regularly say they crack ribs all the time: cracking ribs may not be desirable on its own, but if a responder is doing good CPR with enough force to be effective, breaking a patient’s ribs is considered entirely normal and not a red flag that CPR is being done inappropriately. Furthermore, the woman’s age of 59 raises the question of osteoporosis. Racism is almost certainly a factor in the community’s memories; the community had quite probable stories circulating of bad treatment by police officers and possible police brutality. I know that the police tried to explain what they were doing, but if I saw police apparently trying to suffocate a member of our community, possibly saw an offensive indignity in that a senior’s shirt and underwear had been cut away, and saw an officer keep on forcefully shoving down on her chest and probably heard ribs crackling with every shove, it would take quite some believing, almost a reprehensible gullibility, to believe the other officers who tried to explain, “No, really, we’re trying to help her!”

(And, for reasons below, I would be very wary of saying that she probably would have survived if only the crowd hadn’t intervened.)

I may pause to note that neither group, nor apparently the authors of the newspaper article or anthropology text, appears to grasp how the situation would be viewed by a doctor. “Heart massage” is now more commonly known as “Cardio-pulmonary resuscitation,” or CPR, recuscitation being an otherwise obscure synonym for resurrection or returning from the dead: in French religious language, for instance, resuscitation is the term one uses for Christ returning to life after death on a cross. There is, to the purist, some fundamental confusion in the marketing-style slogan, “CPR saves lives.” Clinically and legally, death occurs when a person’s heart stops beating. If a person is still alive, and if there is any chance of saving the person’s life, then CPR is both premature and inappropriate.

Once a person enters a state of “cardiac arrest,” meaning death, then there might be a possibility of getting that person back by cardio-pulmonary resuscitation, even if that is a long shot. CPR at its very best is a third as effective as a heart beating normally, and even under ideal conditions can slow deterioration to give the emergency room perhaps a 5% to 10% chance of getting the person back. And that is assuming that ideal conditions are possible: in reality ideal conditions don’t happen. Though most people giving CPR do not have to deal with a crowd interpreting their efforts as assault, hoping to deliver perfect CPR is like hoping to become a good enough coder that one need not contend with debugging: Eric Raymond implicitly showed great maturity as a programmer by saying he was dumbfounded when his first attempt at Python metaprogramming worked without debugging. The person who does CPR in a public setting will contend not only with the difficulties of CPR itself, but an “uh-oh squad,” bystanders who second-guess one’s efforts and create a social dynamic like that of giving a speech to an audience of hecklers.

Now there is no question of blows or physical restraint when it comes to the idea of CPR or cardiac massage as a way to save lives that is apparently shared by the newspaper article author, the anthropology author, and possibly the police, and the medical view that CPR is “only indicated in the case of cardiac arrest,” meaning that it is premature and inappropriate unless a person has already died, but can preserve a remote chance of getting a patient back after the patient has crossed the threshold of clinical death. Emergency room doctors who view CPR as slowing deterioration and holding onto a slender chance of getting someone back will be quite grateful for CPR performed by police officers and other members of the general public who view CPR as a skill which saves lives. But the understanding is still fundamentally different, and differences like this come up in how computer interfaces are understood: differences you will want and need to appreciate.

Applying this foundation to usability

The core of usability testing is designing some sample tasks, asking users to do them, and observe, as a fly on the wall, without helping. If you can record sessions, great; if not, a notepad, notebook, or netbook works well. (The advantage of recording sessions is that almost invariably people will say, “There’s no way the user could have that much trouble with our design,” and a five-minute video of a user looking everywhere on the page but where users are intended to look, is worth a thousand arguments.) Usually studying five users is sufficient.

There is a saying in customer service of, “The customer is always right.” One may read the cautionary tale of a salesperson who kept on winning arguments with customers and somehow never closed a sale. And the principle is very simple. A customer who is wrong is to be treated as a valued customer as well as a customer who is right, and whether your customer is right or wrong, you treat each customer as a valued customer. Unless you are talking about an abusive customer, in which case it is appropriate to draw a line in the sand, you don’t send a message of “I’m right, you’re wrong.”

That’s not what I am talking about when I say, “The user is always right.” Anyone who teaches programmers or remembers what it was like to begin programming remembers hearing, “There’s no way the computer can be right! The computer has to be running my code wrong, or the compiler isn’t working right!” And it is a slow and at times painful lesson that the computer is in fact (almost) always right, that no matter how right your code seems, or how certain you are, if your code is not working, it is because you did something you did not intend, and your code will begin working when you find out how your code does not obviously say what you think it does, and adjust that part of your code. Bugs in libraries and (more rarely) compilers and interpreters do exist, but one important threshold has been crossed when a programmer stops blaming the tool for confusing bugs and begins to take responsibility personally.

And in the same sense that the computer is always right, and not the sense that the customer is always right, the user is always right about how users behave. If the user interacts with the user interface and does something counterproductive, this means the same sort of thing as code doing something counterproductive if it’s been compiled. The user, who is always right, has identified an area where the interface needs improvement. The user should be regarded as “always right” just as the computer should be regarded as “always right,” and when the user is wrong, that’s good information about where the user interface has problems.

I could say that the only thing we really need to do at all is observe the user. But observing the user includes a major challenge: it includes the major task of grasping things that violate our assumptions. The task is something like first encountering how JavaScript’s support for object-oriented programming includes objects and inheritance, but without classes, first coming to a scripting language and asking, “When does integer overflow occur?” and being told, “Your question does have an answer, but it matters less than you might think,” or the experience of a novice programmer who posted to a forum, “How do I turn off all the annoying compiler warnings I’m getting?” and was extremely frustrated to have more than one guru say, “You want to beg your compiler to give you as many warnings as you can get, and treat all warnings as errors.”

It was a deft move for Google to give Chrome a single search and URL bar, but the main reason may not be the one you think. Searching was heavily enough used that Firefox made life easier for many users by adding a second bar to the right of the search bar so that we could search without first pulling up the Google homepage; for heavy users, simplifying the URL bar and the search bar into one full-width piece is the next refinement. But this is not the main reason why it was deft for Google to give Chrome a unified search/URL bar, or at very least not the only reason.

My own experience helping others out with their computers has revealed that something obvious to us has been absolutely nonexistent in their minds. Perhaps you have had the experience, too, of telling someone to enter something in a page’s text field, and they start typing it in the URL bar, or vice versa typing a URL into a page’s search field. What this unearths is that something that is patently obvious to web designers is not obvious to many web users: “Here is an important, impenetrable dividing line, and all the chrome above that line belongs to the browser, and everything below that line (above the bottom chrome, and excluding any scrollbars) belongs to the website.” This division of labor is obvious enough to most web designers that only experience could teach them that there are some people who don’t understand it. But the real world has many users who do not have any such concept, and behaviors like typing search terms in the URL bar (years before Chrome was available) are clues to “This is something that’s out there.”

And if you think, “Ok, but users are more sophisticated now,” you might go through your website’s search logs and see how many website addresses you can see. It won’t be nearly as many as ordinary search terms, but have you ever wondered where the addresses to MySpace and porn sites in your search logs come from?

Culture shock is a fundamental reality of when things go contrary to your expectations; most of us experience small amounts of culture shock in our day-to-day living and much greater amounts if we travel to another country or do something else. The three examples given above, of classless objects in JavaScript, integer overflow in scripting languages as not terribly important, and asking for a more draconian handling of warnings are examples of culture shock in relation to technologies. As a rule of thumb, if you aren’t experiencing culture shock from your user observations, you’re not deriving full benefit from them, and you don’t understand your users well enough to make the fullest improvements to the design. As a rule of thumb, if you aren’t experiencing culture shock from your user observations, that’s because you’re taking a shower with your raincoat on.

It’s just like (hard) debugging

I would like to make one closing parallel to debugging. There are several types of debugging I am not talking about: for instance, a missing close parenthesis causes an immediate error that makes it fairly quick work to find out what is wrong and what line of code it is. A traceback can also provide an excellent starting point for quick and effective debugging. Although debugging a failed unit test may not be quite so easy, a unit test is not just a tool to say that something is wrong, somewhere; it is a tool that should point a finger, and usually narrow the search field significantly. And many other bugs that are neither syntax errors nor resolved with the help of unit tests are still easy enough to fix that we need not be terribly aware of them; when we think of debugging we may only think of the few hard bugs rather than the majority of bugs which better programmers resolve without really thinking about it, like we turn on light switches on entering a darkened room, or unzip a coat outdoors when the day warms up, without giving the matter too much conscious thought or vividly remembering that we do this. (This is, incidentally, somewhat of an ethnographic observation of good programmers.)

What I am talking about, as hard bugs, are bugs where you go through every investigative tool you can think of, and still cannot pin down what is going on. (This may include a relatively small proportion of bugs that also generate tracebacks or unit test failures.) Observing the bug seems like observing, not a miniature ship in a bottle, but a ship in a seamless glass sphere: there’s no way you can tell that the ship could have gotten in there, but it is quite clear that the ship in fact is in a glass container that has no openings that you can imagine the ship getting in through.

Isaac Asimov said, “The most exciting sound in science is not, ‘Eureka!’ [I’ve found it!], but ‘That’s funny,'” and the history of science bears him out. Today, X-rays are widely known among scientifically literate people to be a very high-energy, short-wavelength radiation belonging to the same spectrum as visible light, but it was not always so; the name ‘X-rays’ is itself a holdover from when they were a fascinating and mysterious mystery, with the ‘X’ in ‘X’-rays referring to something unknown. It was known that they were radiation of some sort, but they passed through some opaque material and in general did not fit into anything people had a conceptual place for.

In the middle of efforts to understand this mystery, there was one physicist who stumbled upon a golden clue that X-rays might be something like light: he left unexposed photographic plates near a source of X-rays, and upon using and developing them, observed that they had all been partially exposed. His response, however, was to contact the photographic supply company and demand that they replace the photographic plates as defective. As Winston Churchill observed, “Man will occasionally stumble over the truth, but most of the time he will pick himself up and continue on.”

In debugging, hard bugs, the kind that remain unresolved after we have investigated all the usual suspects, are rarely solved because we go looking for the right error and find exactly what we expected to find. With the analogy of the ship in the sphere, it is more like deciding there has to be some kind of concealed seam from gluing or otherwise sealing an aperture big enough to allow the ship to enter, at least in pieces, and after looking the glasswork over, using magnifying glasses and lights, and still finding no trace of a seam, you stop ignoring something you had noticed along the way: the ship itself appeared surprisingly glossy. When you stop to look at the ship for a second, you realize that it is not made of the wood and cloth you expected (and that it appears to be at first glance), but as far as you can tell is shaped out of colored glass. And, after doing a little more research, you learn of a glassblower who makes colored glass ships and forms seamless glass spheres around them. In this case, you were not wrong in saying there was no seam; there is still no way that such a thing could have been crafted at room temperature, and there is in fact no ultra-subtle seam that you failed to notice in our efforts to find the seam to an aperture through which the ship could have been inserted at room temperature, even in pieces. But that’s not the point. The ship in a globe was made at glassblower’s temperatures, and there it is possible to create a seamless sphere around a colored glass ship.

Hard bugs are debugged successfully when you learn to stop when you stumble over the truth. And the same is true in the anthropological side of usability techniques: some things you can know to look for, and find, but the much more important competency is to recognize when you have stumbled over the truth, and stop and pay attention to something you don’t know to look for.

Almost all of the difference between doing user observation badly and doing it well hinges on learning to recognize when you have stumbled over the truth.

Lessons from Other Areas

Live cross-cultural encounters

Learning and observing in cross-cultural encounters is an excellent way to learn how to pick up cues the way a user interface developer needs to. There are two basic cross-cultural encounters I recommend as particularly valuable. The first of these, as it takes shape in the U.S., is to spend time volunteering with an English as a Second Language program and tutor on computer basics. Or find out if you can tutor in classes at your local library. (If possible, work in an adult computer class that has seniors and not too many young people.) This may or may not be the most pleasant experience, but it is some of the most valuable. I remember one experience where I was working with a Sudanese refugee, quite possibly an escapee of the genocide against Christians, who had just had his life uprooted under presumably traumatic circumstances and was learning to deal with living in the U.S. all at once, which would presumably be trauma in itself. I remember in particular one moment when we had very slowly typed a word or two in a word processor, and ticked the button to close a document, and were staring at a dialog box asking if we wanted to save the document before closing. And I remember a slow dawning realization that not only did he not know the quite substantial cultural concepts involved in recognizing that this was how culturally one asks a question, expecting an answer in the form of a click on one of two areas of the screen to answer “Yes,” “No,” or “Mu” (“Cancel”), but the question itself, “Do you want to save this document before closing?” was a question that did not exist at all in his culture, and even if I spoke his native language I would probably not be able to explain the question on terms that would make any sense to him. That was probably my most difficult teaching experience, and the one where I have the most doubts about whether I succeeded in teaching anything at all. But it was a profoundly valuable experience to me, and helped me see how things could “go without saying” to me but be baffling to others.

The second of these two cross-cultural encounters is whatever you already have. Few if any of us have no cross-cultural encounters; whether one is ethnically or (a)religiously a majority or a minority, an immigrant or a native citizen of one’s country, or considering face-to-face encounters or Internet connections, most of us have at least some experience in cross-cultural encounter. The differences are there; if you have learned something from cross-cultural encounter, the experience can help us more readily recognize the cues you need to recognize.

History

While I am wary of reducing history to merely an apparatus to understand the cultures of previous times, most historians arrive at a fairly deep understanding of a culture that is not their own, and may arrive at a sensitivity to the ways, all to easy to ignore, in which historical texts veto modern assumptions. There was an experiment in which a question concerning Abraham Lincoln and a number of historical primary sources were given to a number of elementary school teachers, plus one historian of Lincoln, and a historian whose specialties were unrelated. During the time of the experiment, the elementary school teachers started with a wrong conceptual framework that imposed today’s basic categories on the texts, and did not progress to anything better. The historian of Lincoln started with a highly accurate conceptual framework and very quickly arrived at the answer. But what is particularly interesting is the other historian, who was trained as a historian but had little directly relevant knowledge to Lincoln. He started with the same conceptual framework as the non-historians, but by the end he had corrected his framework to the point of reaching where the Lincoln historian had started.

This latter historian is perhaps the most interesting, not because he was initially right, but because he was self-correcting: even though his starting framework was no better than the schoolteachers, he was able enough to adjust his perspective from cues based on the text so that he reached the framework the Lincoln historian started with. And, one would imagine, the Lincoln historian would have had a similar self-correcting sensitivity to the texts had he been asked the same kind of question about a historical setting he did not initially understand.

Getting history right is relevant to us in two ways. First, one understands one, or perhaps many, other cultures more or less well. Second, when one trips over a clue that one is wrong, one stops and learns from it, instead of hoping it will go away. Both of these strengths are a powerful foundation to usability.

Old Books and Literature

Books can be a very good place to sharpen anthropological competencies through meeting other cultures. However, I might clear the ground of some distractions if it is tempting to say, “But I meet other cultures in all my favorite books! I’m an avid reader of science fiction and fantasy.”

All science fiction is not created equal in terms of cultural encounter. There is a marked difference between reading Heinlein’s Stranger in a Strange Land and watching Star Trek. Heinlein understood both culture and culture shock, and though his book only treats one alien culture, it is written to create culture shock in the reader, and challenge us in assumptions we didn’t know we had. “Whaaa—? They can’t do that!” is a normal and intended reaction to several parts of the book. In Star Trek, there are many races, but culture shock in the viewer is almost nonexistent even when the plot is intended to surprise. To put it more pointedly, the average American’s culture shock from watching years of Star Trek is probably much less than the average American student’s culture shock from a few months’ experience in a foreign exchange program, perhaps less than the culture shock in the first month of that program. By comparison with a live encounter with another human culture, the alien races in Star Trek have less their own alien cultures than a shared personality profile we can already relate to even when we don’t like it.

Likewise, not all fantasy is created equal. J.R.R. Tolkein and C.S. Lewis were both Oxford-educated medievalists who knew medieval literature intimately. The genre of fantasy that appeared in their wake, if you have seriously read medieval literature, seems by comparison like the opening rant in the movie Dungeons & Dragons, where a supposedly medieval character gives an impassioned “Miss America” speech about how horrible it is that the realm’s government is unlike a U.S.-style democracy. Today’s genre fantasy reads like the story of Westerners from our time who happen to be wearing armor; by contrast, in The Chronicles of Narnia some of the characters are indeed from the twentieth century, but in terms of how the story is put together there is something a bit medieval, and not individualist, about their characterization.

If our cultures’ science fiction and fantasy are not the best place to be challenged by another encounter, and to develop that kind of sensitivity, where can we go? One obvious response is to look to be challenged by books like the Dao De Jing and the Bhagavad-Gita. Those are both excellent places to look to be challenged, but if we assume that we can be challenged by the Bhagavad-Gita but not Plato, we are selling both of them short. The image in Plato of climbing out of the cave with its shadows and looking at the sun is something that a Hindu commentator on the Bhagavad-Gita can quite easily relate to, and in a certain sense Plato has more in common with that kind of Hinduism than with his disciple Aristotle.

What does it look like to read a text to see what one can pick up culturally? Consider the following text:

QUANTUM THEORY, THE. As recently as the opening years of the present century the vast majority of physicists still regarded Newton’s dynamical laws as something established for all time. And they were not without solid grounds for this faith. Many phenomena were indeed known, chiefly those which may be classed under the heading radiation, e.g. black body radiation and line spectra, which refused to accommodate themselves to any sort of theory founded on Newtonian principles; but it was generally believed that such phenomena would, sooner or later, be completely accounted for without any departure from the classical principles of physics. Even the theory of relativity developed by Lorentz, Einstein, Minkowski and their successors was regarded only as a widening or generalization of the Newtonian basis of physics. It was the culmination of classical physical theory. These phenomena we now believe, cannot be accounted for on the basis of classical physical theory, whether Newtonian or Einsteinian. The first act of sacrilege was committed by Max Planck, until recently professor of theoretical physics at the University of Berlin, about the end of the year 1900, when he initiated the quantum theory. One of the problems engaging the attention of physicists during the closing years of the last century was that of the radiation from a black body…

The reconciliation of these two aspects of the phenomenon, namely the independence of the energy of the ejected photo-electrons and the intensity, on the one hand, and the wave character of the radiation on the other, constitutes one of the most formidable problems which physical science has ever encountered…

Now I would like to make a couple of points. I could, for instance, have chosen an interminable fight narrative from a medieval Arthurian legend to say, “We look on Arthurian legends as mysterious tales of wonder. Did you know that a large portion of those legends is actually quite dull to the modern reader?” Some readers may be wondering, “This is a scientific article, not a cultural area where anything goes.” But, even if science is not a domain where anything goes, there are cultural issues here, and it may be possible to date the article by cultural markers as well as by values given for physical constants (Avogadro’s number appears to be given as 6.06 * 10^23, not today’s 6.022 * 10^23, and the unit of electrical charge is reported to have current values consistent with initial measurements, despite the fact that the initial reported experimental value was erroneous and subsequent experimenters fudged until it was found acceptable to report what is now believed to be the correct value.)

In the quoted text, there are two significant markers that date the text as showing significant cultural difference from how things are viewed today.

A physicist or philosopher today would say that Newtonian physics, Einsteinian physics, quantum physics, and for that matter superstring theory are fundamentally irreconcilable on an ontological plane but happen to predict the same behaviors for the kind of experiments one would expect of a high school physics lab: the predicted results for each of these theories are vastly smaller than even a top-notch experimental physicist doing high school experiments could possibly observe. But the reasons behind those differences are irreconcilable, like the difference between saying “You see this OS behavior because it is running natively on your computer” and “You see this OS behavior because it is being emulated under virtualization with several levels of indirection that are extremely slippery to understand.” The behavior predicted is interchangeable, but the reasons proposed for the behavior are fundamentally irreconcilable. Furthermore, this is not just true if one compares quantum physics with Einsteinian or Newtonian physics; it is also true if one compares Einsteinian with Newtonian physics: to today’s take on things, it is a bit astonishing to say, “on the basis of classical physical theory, whether Newtonian or Einsteinian.” The usual way of presenting things in a physics class today is to present Einstein’s theory of relativity as the first in a stream of foundational upsets after Newton reigned unchallenged and apparently eternally established for centuries. Today we would expect to need to dig a bit to find more examples of Einstein’s theory referred to as a further expansion developing Newton, which should still be considered “classical physical theory.”

The second quoted paragraph refers to how light (and, it may be mentioned, practically everything else as seen in quantum theory) behaves as a particle when treated in some ways and as a wave as treated in others. This duality has since hit the rumor mill well enough that a favorite illustration from science in theology programs is how light exists as both a particle and a wave, which reflects the extent to which the duality of light as particle and wave remains unresolved but is no longer regarded as, “one of the most formidable problems which physical science has ever encountered.”

Our point is not to deride the article, which is written at a higher level of sophistication and detail than, for instance, the Wikipedia. Apart from its certitude in the existence of an “aether,” slightly surprising in light of the fact that the Michelson-Morley experiment dates to 1887 and the article refers to 1900 as a past year, its picture of quantum physics portrays the same core science one would expect of a physics text today. But, even in physics, which is not in any sense a field where just anything goes, culture is present, and for that matter in this article the cultural cues alone are most likely sufficient for an historian of 20th century physics to closely date it.

This kind of cue is what you can practice learning in reading old books, and this kind of cue is what you need to be able to pick up in observing for good user interface development.

The way you observe that a user doesn’t share an understanding that is obvious to you is by the same kind of cue that can clue you in that a text doesn’t share an understanding that is obvious to you.

The last other area: Whatever you have

Whatever else you have is probably a resource you can draw on. Do you love birding? Birding is a hobby of observation. Do you do martial arts, for instance? A common theme in martial arts is harmony between opponents, and if you can attune yourself to a sparring partner, you should be able to attune yourself to a user. Comedy or performing arts? You’re not a good comedian if you’re insensitive to your audience. Have you made a lot of mistakes, and learned from them, or at least started to learn? Wonderful news! (Are you an amateur or professional anthropologist? That one doesn’t need explaining!) There is some connection between any two areas of life; let other skill support and strengthen your usability work.

Understanding the User

A lesson from optimization

Knuth said, for the novice programmer, “Don’t optimize,” and to experts only, “Optimize later.” Always writing for optimization is a recipe for bad, unreadable code, and for that matter slow code, compared to code written for clarity that is later optimized using that clarity. And Knuth also said, “Premature optimization is the root of all evil.”

In one production system I was working on, I wrote one search with the realization that the implementation I was using was extremely inefficient, and had to deliberately refrain from optimizing it, to leave for later. When the whole system was put together, it took a couple of seconds longer than was acceptable, and I began mentally gearing up to optimize the inefficient search. Before doing so, I did some testing, and found to my surprise that my inefficient search implementation took very little time to run, and when I began mapping things out, found the root problem. I had called a poorly chosen method, and with it made a purely preventable network call, and that network call took a few seconds. When that problem was fixed, the remaining code ran at acceptably fast times for even the largest accounts.

This story is my own version of something that keeps on being retold in the programming literature: “Our system was running slowly, and we had reasonable ideas about what was going on here, but our reasonable ideas were wrong. We didn’t know what the real problem was until we dug into some observation.”

This basic lesson in optimization is a fundamental phenomenon in usability as well. We will have reasonable ideas about what the usability issues are, and our reasonable ideas will be wrong. We won’t know what the real issues are until we dig into some observation.

What’s wrong with scratching an itch, or, you are not your user

The open source community is largely driven by scratching itches, but scratching a programmer’s itch is a terrible way to approach user interface design.

The story is told of a program used in an office where a popup window appeared and said, “Type mismatch.” And the secretary obediently typed M-I-S-M-A-T-C-H, a perfectly appropriate user response to an inappropriate error message. (This kind of thing shows up in many more subtle ways, some of which are not so obviously wrong.)

Designing a user interface that makes sense to someone who understands its inner workings, and designing a user interface that makes sense to its intended audience, are not the same thing. A mechanic’s understanding of how a car starts is very elaborate and detailed, but a user should be able to get by thinking, “I turn the key and press the gas, and the car starts” without necessarily thinking anything about what’s under the hood. If users need to understand what’s under the hood to operate the car, the car needs improvement.

Worst practices from the jargon file

The jargon file defines the extremely pejorative “PEBKAC” as:

[Abbrev., “Problem Exists Between Keyboard And Chair”] Used by support people, particularly at call centers and help desks. Not used with the public. Denotes pilot error as the cause of the crash, especially stupid errors that even a luser could figure out. Very derogatory. Usage: ‘Did you ever figure out why that guy couldn’t print?’ ‘Yeah, he kept cancelling the operation before it could finish. PEBKAC’. See also ID10T. Compare pilot error, UBD.

And the particular example is unfortunately revealing of an attitude user interface people need to avoid like the plague.

It is common enough in computer programs to have modal dialog boxes; the humble JavaScript alert(“Hello, world!”); is one of innumerable ways to get them. And what they mean from an ordinary nontechnical user perspective is, “A box popped up, probably one that you don’t want and may not understand. What is even more annoying is that it is blocking your work; you can’t continue what you are doing until you get rid of it.” And so an entirely appropriate way to deal with these annoyances is get rid of them as quickly as possible.

The example given in the jargon file’s definition of “PEBKAC” is, “‘Did you ever figure out why that guy couldn’t print?’ ‘Yeah, he kept canceling the operation before it could finish. PEBKAC.'” For a long time, at least, attempting to print from a GUI gave something that looked like a modal dialog box, but for this “modal dialog lookalike”, there is one important difference in behavior. When you click on the button to make it go away, it destroys your print job.

This is not a case of a problem existing between the user’s keyboard and chair.

It is a case of a problem existing between the user interface designer’s keyboard and chair. PEBKAC.

To pick on the jargon file a little more, “Drool-proof paper” is defined as:

Documentation that has been obsessively dumbed down, to the point where only a cretin could bear to read it, is said to have succumbed to the “drool-proof paper syndrome” or to have been “written on drool-proof paper”. For example, this is an actual quote from Apple Computer’s LaserWriter manual: “Do not expose your LaserWriter to open fire or flame.”

Let’s ignore the fact that this sounds less like a technical writer trying to be easy to understand, than corporate legal counsel trying to ward off ambulance chasers.

There is a very user-hostile attitude here, the basic idea that if your system is too difficult for your users to understand, the users must be too stupid, and making something user-friendly is a matter of stretching to meet people you shouldn’t have to cater to. Stories and terms like this circulate among programmers. I might suggest that terms like these, for your software’s audience, are little, if any, better than a racial slur. They reflect an attitude we don’t need.

Python and usability

You do not really understand Python until you understand something about usability as it appears in Python. Usability is the soul of ‘Pythonic’.

It’s not all about the computer!

There is something genuinely different about Python, and to explain it I would like to discuss the advantages of C.

If you want to nano-optimize every ounce of performance you can get, there is little serious competition to C. You can write assembler for different platforms, or write in a C++ that is multiparadigm like Python and have some parts of your program use high-level features like objects, templates, and operator overloading, while still writing almost unadulterated C for parts that are performance-critical. And the group of programmers that “vote with their keyboards” for using C this way, includes Guido van Rossum, who created Python. The first and canonical Python implementation is written in C, and a Pythonista underscoring the point that Python’s switch statement is a very efficient dictionary will explain that Python’s dictionary is implemented in tightly optimized C.

But this kind of advantage comes at a price. In the canonical list of ways to shoot yourself in the foot in different programming languages, C is “for people who want to load their own rounds before shooting themselves in the foot.” In one Python forum, a wannabe 133t hax0r asked how to write a buffer overflow in Python, and a wry Pythonista replied apologetically: “We’re sorry, but Python doesn’t support that feature.” But C does support the “feature” of buffer overflows; its default string handling never leaves home without it. With manual memory management and manual handling of pointers, C also supports “features” including all kinds of memory leaks and subtle pointer errors that can be extremely difficult to debug. Python closes this Pandora’s box, although Python is hardly the only language with the wisdom to do so. Python, PHP, Ruby, Perl, Tcl, and Java all close the Pandora’s box that must be wide open if you are to have tightly optimized C.

C has been called a language that combines the power of using assembler with the ease of using assembler, and I know of no compiled language that surpasses C for power over bare metal, or for corresponding possibilities for tight optimization. However, this is not the only way to keep score. Python keeps score by another metric: programmer productivity.

The one overriding concern motivating decisions in Python is not how you can get the tightest control over the computer’s productivity. It’s how to let the programmer be most productive, and it has been said of this relentless pursuit of programmer productivity that capital sentences are passed with less thorough deliberation than obscure Python features. And if you’ve used Python, the difference you have experienced is precisely because of this one overriding concern, this relentless pursuit. The people in charge of Python have decided that Python isn’t about what to do to optimize the computer; it’s about what you do to empower the programmer.

If you’re interested in usability, you have a good working example of usability to look at. To put Python’s strength a little differently, Python is a language where the one overriding concern and relentless pursuit is usability for you, the programmer. If you are working on usability, you are working to give end-users the same kind of thing that Python gives you. You are making a product more Pythonic to use, as opposed to giving the more C-like experience of an interface that lets users load their own rounds before shooting themselves in the foot.

Usability is about how to go from giving C user interfaces, to giving Pythonic user interfaces.

Hayward’s Free Intranet Employee Photo Directory

So, you’ve hired a hacker (revised and expanded)

Usability, the soul of Python: an introduction to the Python programming language

Within the Steel Orb

“Social Antibodies” Needed: A Request of Orthodox Clergy

CJSH.name/social-antibodies

Some time ago, a pastor contacted me and asked permission to quote one of my poems. We’ve been in contact at least occasionally, and he sent me an email newsletter that left me asking him for permission to quote.

Let me cite the article in full (©2014 Pastor Vince Homan, used by very gracious permission):

When there are many words, sin is unavoidable, but the one who controls his lips is wise. Proverbs 10:19

I recently violated a longstanding position I have held; to avoid all further interaction with social media, particularly Facebook. It wasn’t necessarily because of any moral high ground; it was more because I had already mastered e-mail and was satisfied with my online accomplishments. In addition, I didn’t have any additional time or interest to keep up with pithy little sayings, videos, cartoons, social life, or even cute kiddie pictures. But now I am happily in the fold of Facebook users (particularly if there is a picture of one of my grandbabies on it). In addition, it has allowed me to discover that there are literally dozens of people who are just waiting to be my friends. However, the real reason I’m on Facebook is work related. Thanks to the good work done by a few of our church members; both of our churches have excellent Facebook pages. In order to access those pages, I needed an account, so—here I am. And though all seems well with the world of Facebook, I am discovering that it is not always the case. For all the “warm fuzzies,” and catching up with friends and family it offers … there is also a dark side.

At a recent continuing education event I attended, the speaker presented some dire consequences to uninhibited use of social media. He reported that social media had replaced money as the number one contributor to marriage problems. He said it wasn’t so much affairs that online relationships led to; rather it was the persistent flirting that broke down barriers and hedges, which once protected the marriage. Such interaction often led to a downward spiral, corrupting and compromising the marriage vow. One in five divorces involves the social networking site Facebook, according to a new survey by the American Academy of Matrimonial Lawyers. A staggering 80% of divorce lawyers have also reported a spike in the number of cases that use social media for evidence of cheating, with Facebook by far the biggest offender. Flirty messages and and photographs found on Facebook are increasingly being cited as proof of unreasonable behavior or irreconcilable differences. Many cases revolve around social media users who get back in touch with old flames they hadn’t heard from in many years.

PBS recently hosted a webinar, This Emotional Life, about the internet’s impact on relationship and marriage.[i] One of the panelists, Theresa Bochard, explored the issue a bit farther in an article originally published on PsychCentral.com. She said that after reading hundreds of comments and emails from people who have been involved in online relationships or emotional affairs as well as the responses on several discussion boards, she concluded that while the internet and social media can foster intimacy in a marriage, it seems to do more harm than good. She reported that an astounding 90% of opposite-sex online relationships were damaging to the marriage. Facebook affairs are threatening healthy couples too.

“I have suggested to myself to write a thank you note to the inventors of Facebook and Myspace because they have been responsible for a significant percentage of my income,” says marriage counselor Dr. Dennis Boike. He’s not kidding. “I’m having people say I never would have expected me to do this. It’s in the privacy of my computer. I’m not going out anywhere, I’m not dressing for it, I’m not smelling of another’s perfume. There are no tell-tale signs except my computer record.” But a new study suggests Facebook can also help disconnect you from your better half. The site, which boasts more than 350 million active users, is mentioned in over 20% of divorce petitions, according to Divorce-Online.

Prominent Houston divorce attorney Bucky Allshouse can understand why. “It’s really kind of shocking what people put on Facebook,” says Allshouse. Perhaps it’s not so shocking that the social networking site can essentially pour kerosene on “old flames.” Most online relationships start out benign: an email from a person you knew in college, friending an ex-boyfriend or girlfriend on Facebook (as suggested by Facebook: “people you might know”), getting to know a co-worker or acquaintance better online. But the relationship can take a dangerous turn very quickly if you’re not careful and even more easily if you are doing most of the talking behind a computer.

We have no non-verbals with which to interpret people’s conversation when we communicate online. What we say can be misinterpreted and come off in a way we don’t intend. Or worse, we purposely allow our conversation to drift into an unhealthy area, where we put out “feelers” to see if the person we are communicating with will do the same. We will text things to people that would make us blush if we said them in person. All too often the end result is flirting, compromising our values, and allowing the secrecy of social media to sweep us off our feet and into a quagmire of social dysfunction. This is not a victimless choice. Many times, inappropriate conversations through social media lead to great pain with children, spouses, parents, and friends.

One such instance occurred when Jonathan found Sharon on Facebook, 20 years after he dumped her one week after their high school prom. She had never married, while he had and was also the father of two teenagers. During months of emailing and texting, Sharon proved a sympathetic listener to his sense of isolation and loneliness within his own marriage. He found they could talk easily, picking up with the friendship they had had years before. They shared feelings they had never shared with others. After a few months, they decided to cross a few states and meet half way. Then, they talked of marriage. Shortly after, Jonathan went through with his divorce and months later he and Sharon married. Not surprisingly, and after only four months, they divorced. What happened? Fantasy was hit hard by reality. They went into a marriage without really spending time to know each other as they are today. Their romance was fueled by their history (as 18-year-olds) not their adult present. The romantic idea of reconnecting with an old lover, at a time Jonathan was unhappy in his marriage, was a recipe for danger.

In talking about it later, Jonathan realized he had not intended to start up a romance; he hadn’t intended to leave his marriage in the first place. As he and Sharon shared feelings, he felt more cared for by her than by his wife. When asked who raised the issue of marriage, he wasn’t sure. “Perhaps she pushed it, but I may have been just been musing something like, ‘Wouldn’t it have been great if we got married,’ and that led her to talk about marriage. I wonder if I led her on. Did I promise more than I had realized and then feel in love with my own fantasy?”[ii]

When we cross barriers that were intended to keep us safely within the parameters of our marriage vows, we start in internal conflict—one that attacks our emotional and mental center. Conversations with people of the opposite sex can lead to flirtations. Flirtations can lead to imaginations which lead to fixations … and there is a fine line between fixation and passion. Promiscuity is rarely a random act. It is pre-meditated. Something triggers our thoughts. And that something can be social media.

Christians must be wary of intimate conversations with people of the opposite sex; it is a trap that too many good people have been caught in. Paul wrote: “We are casting down imaginations, and every high thing that is exalted against the knowledge of God, and bringing every thought into captivity to the obedience of Christ” (2 Cor. 10:5). It is good advice; cast down imaginations … take every thought captive, because it is often out of our imaginations and thoughts that bad choices are born. Jesus said something similar. Speaking to the disciples he warned, “But the things that come out of a person’s mouth come from the heart, and these defile them. For out of the heart come evil thoughts—murder, adultery, sexual immorality, theft, false testimony, slander” (Matthew 15:18-19). The battleground is not the computer or cell phone; it is the heart and the mind. But secretive messaging avenues like social media offers can help plant the seed for a battle that good people lose every day.

Dr. Karen Gail Lewis, a marriage and family therapist of 39 years and author of numerous relationship books, offers these social networking guidelines for married couples.

  1. Be clear about your agenda in contacting the other person.
  2. Limit the frequency of your time online. This sets a good boundary around the social networking contact.
  3. Don’t talk intimately. By not sharing intimacies with your correspondence, you reduce the chance of sending a message that you want a more intimate relationship.
  4. Let your spouse know with whom you are contacting. This openness makes it clear you have nothing to hide. (I would add, especially so if you are contacting a person of the opposite sex).[iii].
  5. Share your outgoing and received emails/texts with your spouse. Sharing communications removes any chance for jealousy or misunderstandings (I would add, share passwords with your spouse; give them full access to your social media sites).[iv].
  6. Do not meet in person unless your spouse is with you. Meeting up with old friends with your spouse by your side is a reminder that you two are a team and removes sending mixed messages to your former lover. This also reinforces the importance of fixing your marriage before playing with the flames of old flames.[v].

Jesus taught us to be wise as serpents and harmless as doves (Matthew 10:16). Social media is a place that Scripture applies. I believe in the sanctity of marriage. I believe a person places their personal integrity and honor on the line in the marriage vow more than anything else in their life. And I believe marriage is under attack from multiple directions. I have officiated at many young couples weddings. I spend time with each one, warning them of the potential pitfalls and dangers; encouraging them to make their marriage a priority each day. Because I know the reality; many of the ones I marry won’t make it. It’s not because they are bad people or people of no character; but they get caught in a trap, and they can’t seem to find a way out. And I also know most of them deeply regret their decisions after the fallout of their choices turn to consequences.

Social media can be a wonderful thing. I love keeping in touch with family and looking at pictures of the grandbabies. Now our churches are using social media to share the gospel. But Christians should be wary of the potential dangers. We must keep up our barriers at all times. James warned, “Temptation comes from our own desires, which entice us and drag us away. These desires give birth to sinful actions. And when sin is allowed to grow, it gives birth to death. So don’t be misled, my dear brothers and sisters” (James 1:14-16). Indeed, we must not be misled, rather be guided by the protective barriers God has placed around us; especially so if we are married. We must watch our words carefully and keep our thoughts captive. The sanctity of our marriage vow demands it.

Grace and Peace,
Pastor Vince


[i] http://www.pbs.org/thisemotionallife/blogs/does-internet-promote-or-damage-marriage

[ii] http://www.hitchedmag.com/article.php?id=903

[iii] Parenthetical mine

[iv] Parenthetical mine

[v] http://www.hitchedmag.com/article.php?id=903

This article left me reeling.

In part, I wondered if my collection in The Luddite’s Guide to Technology, was simply wrong. Or if someone might rightly say to me, “What you give in The Luddite’s Guide to Technology is helpful up to a point, at least for someone with a similar background to yours. However, regular people need much more concrete guidance.” What struck me very concretely about Pastor Vince’s article is that it gave very practical advice on how married people can appropriately handle Facebook.

The article reminded me of remarks I’d seen by people interested in making computers that people can actually use that the Apple Macintosh was the first computer worth criticizing. Perhaps some detail of the guidance in the article above could be criticized: perhaps much of it should be criticized: but it may be the first article I’ve seen on the topic that was worth criticizing.

The concept of “social antibodies”: it’s not just Facebook

Paul Graham’s “The Acceleration of Addictiveness” is worth reading in full. (It’s also worth quoting in full, but he’s asked nicely that people link to it instead of reposting, which is a fair request. So I am linking to it even though I’d prefer to reproduce the whole article.)

The Acceleration of Addictiveness talks about a little bit bigger picture about things that are addictive. Though he mentions Facebook as something that’s even more addictive than television, he’s clear that the big picture is more than addictive little Facebook. Graham talks about a concept of “social antibodies” which I think is incredibly useful.

Decades ago, smoking cut through the US like a hot knife through butter. But, while smoking is still dangerous and there still continue to be new smokers, we no longer have glamour shots of celebrities holding cigarettes in some flashy, sophisticated, classy pose. Smoking is no longer “sexy;” over the past 20 years it has been seen as seedy, and “smoker” is not exacty the kindest thing to call someone. (I remember one friend commenting that he could think of a number of terms more polite than “smoker,” none of which were appropriate to the present company.) As a society, the US has developed social antibodies to smoking now.

There are many things that we need “social antibodies” for, and we keep developing new technologies, Facebook included, that need social antibodies. The six prescriptions in the quoted articles are essentially social antibodies for how to use Facebook without jeopardizing your marriage. They may seem harsh and excessively cautious, but I submit that they are easier to go through than divorce. Much easier. A piece of cake! And I quote Pastor Vince’s article because it’s something we need more of.

A helpful parallel to technology: Wine as an example

Simply not drinking alcoholic beverages is an option that I respect more as I think about it, but for the sake of this discussion, I will leave it on the side. I am interested in helpful parallels for “social antibodies” in moderation and restraint in using technology, and as much as I may respect people who do not drink, that option is not as interesting for my investigation. This is especially true because people living in my society assume that you are not abstaining from every technology that can cause trouble. So with a respectful note about not drinking alcohol at all, I want to look at social antibodies for moderate, temperate, and appropriate use of wine.

Wine and liquor slowly increased in strength in Western Europe, slowly enough that societies had at least the chance to build social antibodies. This makes for a marked contrast to escape through hard liquor among Native Americans, where hard liquor blew through decimated nations and peoples like escape through today’s street drugs would have blown through a Europe already coping with the combined effects of the bubonic plague and of barbarian invasions. Perhaps there are genetic differences affecting Native Americans and alcohol. A Native American friend told me that Native American blood can’t really cope with sugar, essentially unknown in Native American lands apart from some real exceptions like maple syrup. And lots of alcohol is worse than lots of sugar, even if some of us wince at the level of sugar and/or corn syrup in the main US industrial diet. (Even those of us not of Native American blood would do well to restrict our consumption of artificially concocted sugars.) But aside from the genetic question, introducing 80 proof whiskey to societies that did not know how to cope with beer would have been rough enough even if there were no genetic questions and no major external stresses on the societies. If there was something of a stereotype about Native Americans and whiskey, maybe part of that is because hard liquor that had been developed over centuries in the West appeared instanteously, under singularly unfortunate conditions, in societies that had not even the social antibodies to cope with even the weaker of beers.

I cite St. Cyril of Alexandria, The Instructor, Book Two, Chapter II: On Drinking as a model for approaching alcohol (and, by extension, a serious reference point in understanding moderate use of technology), with some reservations. The translation I link to is obscure and archaic, and if you can get past that, the individual prescriptions are the sort that would only be all kept (or, for that matter, mostly kept) by the sort of people who are filled with pride that they observe ancient canons more strictly than any canonical bishop. In other words, don’t try these directions at home unless you know you are in agreement with your priest or spiritual father. But the chapter of The Instructor on wine offers a priceless glimpse into real, live social antibodies on how to navigate dangerous waters. This is a live example of the sort of things we need. The book as a whole covers several topics, including clothing and boundaries between men and women, and they could serve as a model for pastoral literature to address the challenges offered to spiritual life today. Not specifically that online interactions between men and women introduce an element of danger. That element of danger has always been there, and always will be there. But online interactions frame things a little differently. This means that people with social antibodies that would show appropriate caution face-to-face might not recognize that you have to compensate when dealing with the opposite sex online, or might not intuit exactly how you have to compensate when dealing with the opposite sex online.

I would like to close this section with a word about wine and why I drink it. The politically incorrect way of putting this point is to say that wine is something which literally and figuratively is not part of Islam. Islam works out, in stark relief, what it means to subtract the Incarnation from Christian faith. It means that not only has the Son of God not become incarnate in Christ, but all the more does God become incarnate in his children. It means that Holy Communion is just a symbol, and wine could absolutely, absolutely neverbecome the blood of God. Water is necessary and wine is not, as St. Clement tells us, but the Orthodox Church that regards Islam as a Christian heresy used fermented wine exclusively in the Eucharist, and condemned heretics’ use of pure water for the same purpose. And my reason for drinking a little wine is that wine has an elasticity that bears the meaning of Jesus’s first miracle, turning water into even more wine when wine ran out at a wedding where the guests were already pretty drunk, and it bears the meaning of the Holy Mysteries: few if any material substances are as pregnant with spiritual depth as wine. Ecclesiastes is perhaps the most dismal book in the entire Bible, and “Go, eat thy bread with mirth, and drink thy wine with a joyful heart” is close to being the only invitation to joy in the book. I do not say that this is a reason why people who have decided not to drink should change their mind. However, the theological motive to drink in Christianity comes from a higher plane than the admittedly very real reasons to be careful with alcohol, or else abstain. It’s deeper.

Is the iPhone really that cool?

The LinkedIn article Come With Me If You Want to Live – Why I Terminated My iPhone talked about how one family decided to get rid of their iPhones. The author talked about how the iPhone had taken over their lives. They suggested that trying to use their habit to use the iPhone in moderation was a nonstarter, however enticing it may look. And, on a sobering note, they had earlier tried to avoid using smartphones, even for work. And I am convinced they made the right choice: not having any smartphone use is better than addictive smartphone use, hands down. And while I am cautious about advertising responsible smartphone use to people who can’t live without their iPhone—the analogy drawn in the LinkedIn article was, “In hindsight, it’s like an alcoholic saying ‘I thought I could have it in the house and not drink it.'” But I have iPhone use which is defensible, at least in my opinion; I have drawn a boundary that is partly tacit and partly explicit, and while it can be criticized, it is a non-addictive use of the iPhone. I average less than one text a day; I do not compulsively check anything that’s out there. A few of the guidelines I found are,

  1. Limit the time you spend using your smartphone. The general Orthodox advice is to cut back a little at once so you never experience absolute shock, but you are always stretched a little bit outside your comfort zone. That may be a way to work down cell phone use, or it may not. If you compulsively reach for your smartphone, you might leave it in one room that you’re not always in. Put a boundary between yourself and the smartphone.
  2. Limit how often you check your cell phone unprovoked. When I’m not at work, I try to limit checking email to once per hour. Limit yourself to maybe once per hour, maybe more, maybe less, and restrain yourself.
  3. When you’re going to bed for the day, you’re done using your smartphone for the day. I am not strict in this; I will answer a call, but checking my iPhone, unprovoked, after my evening prayers or my bedtime is a no-no.
  4. Don’t use the iPhone as a drone that you need to have always going on. This includes music, texting, games, and apps, including Vince’s hero, Facebook. Perhaps the single biggest way that this violates Apple’s marketing proposition with the iPhone is that the iPhone is designed and marketed to be a drone that is always with us, a bit of ambient noise, delivering precisely what the Orthodox spiritual tradition, with works like The Ladder, tell us is something we don’t need.The iPhone’s marketing proposition is to deliver an intravenous drip of noise. The Orthodox Church’s Tradition tells us to wean ourself from noise.
  5. iPhones have “Do Not Disturb” mode. Use it. And be willing to make having “Do Not Disturb” as your default way of using the phone, and turn it off when you want “Please Interrupt Me” mode explicitly.
  6. Don’t multitask if you can at all avoid it. I remember reading one theology text which claimed as a lesson from computer science, because people can switch between several applications rapidly, that we should take this “lesson” to life and switch between several activities rapidly. And in a business world where multitasking has been considered an essential task, people are finding that multitasking is fool’s gold, an ineffective way of working that introduces a significant productivity tax where people could be doing much better. Smartphones make it trivially easy to multiask. Don’t, unless a situation calls for it.I note with some concern that the most I’ve been shocked at someone using an iPhone was when 12 and under kids were manipulating the iPhone, not to get something to done, but to activate the iPhone’s smooth animations. Looking over their shoulders in shock has felt like I was eavesdropping on a (non-chemical) acid trip. Children’s use of iPhones driven by slick animated transitions between applications are even more unhelpful than what the business world means by multitasking. (This feature of kids’ use of iPhones has made me kind of wish iPhones were not used by people under 18.)

Now I should post this with a clarification that this is, so to speak, pastoral advice to myself. I’ve found the basic approach helpful, and priests and spiritual fathers may draw on it if they choose in their best judgment to take something from it, but I have not been ordained or tonsured, and I would fall back on the maxim, “As always, ask your priest.” My reason to post them is to provide another reference point beyond those given to “social antibodies” in dealing with technology. With these antibodies, I hold the reins, or at least I hold the reins a little better than if I didn’t have these antibodies. But I am aware of something vampiric, something that sucks out energy and life, in even my more moderate use of some technologies, and I am a little wary of comparing my use of technology to moderate and sober use of alcohol. Appropriate use of alcohol can be good, and apart from the risk of drinking getting out of control, it is an overall positive. I’m leery of claiming the same for my use of technology, even if I’ve tried hard to hold the reins and even if I may do better than average. There is something that has been drained from me; there is something that has been sucked out of me. Maybe I am less harmed than others: but my use of technology has harmed me. I am wary of saying now, “I’ve found the solution.”

In dealing with another passion besides sexual sin, namely anger, people have started to develop “social antibodies:” as mentioned briefly by Vince Homan, we don’t have the important channels of people’s nonverbal communication, which flattens out half the picture. And when we are angry, we can flame people in emails where there is no human face staring back to us, only letters on the screen that seem so right—or perhaps not nearly right enough!—and write hurtful flames unlike anything we would dare to say in person, even to someone who hurt us deeply. And on that score, people seem to me to have developed social antibodies; I’ve been in lots of flamewars and given and received many unholy words, but I don’t remember doing that recently, or seeing flames wage out of control on many mailing lists, even if admittedly I don’t spend much time on mailing lists. But sexual dangers are not the only dangers online, and for online flaming, most of the people I deal with do not flame people like I did when I was first involved in online community. I’ve acquired some “social antibodies,” as have others I meet online. Some social antibodies have already developed, and the case is not desperate for us as a Church learning how to handle technology in the service of holy living instead of simply being a danger.

Pastoral guidance and literature needed

I visited Amazon to try to get a gauge on how much Orthodox pastoral resources about appropriate use of computers, mobile, internet, and technology were out there, a sort of The Instructor for technology today, and my search for orthodox internet found 109 resources from Christianity, Judaism, and the occult, none of which seemed to be about “How does an Orthodox Christian negotiate the social issues surrounding computers, smartphones, tablets, the Internet, apps, and technology?” Some other searches, such as orthodox pastoral internet, orthodox pastoral smartphone, and orthodox pastoral technology turned up nothing whatsoever. A search for “orthodox technology” turned up one page of search results with… several connected works of my own. Um, thanks, I think. I guess I’m an expert, or at least a resource, and even if I didn’t want to, I should probably make myself available to Orthodox clergy, with my spiritual father and bishop foremost. But this compliment to me, if it is such (maybe it means I’m off the rails) caught me quite off-guard; I was expecting to see at least some publications from people with pastoral authority and experience. But seeing as I’m the local expert, or at least a first author for this particular topic, I’ll briefly state my credentials. I have been an Orthodox Christian for a decade, so no longer a recent convert, have works on social dimensions of technology dating back as far as 1994, have two years of postgraduate theology under slightly silly conditions at Cambridge, and two more years under very silly conditions at a sort of “Monty Python teaches theology” PhD program (one Orthodox priest consoled me, “All of us went through that”), but did not complete the program. I grew up with computers back when my home computer access meant going to an orange and black terminal and dialing up a Dec MicroVAX on a 2400 (or less) baud modem, was on basically non-web social networks years before it became a buzzword, have worked with the web since before it went mainstream, much of it professionally. I’ve been bitten by some of the traps people are fighting with now. And I’m also kind of bright. So I guess I am, by default, a local expert, although I really think a responsible treatment of the issues raised here would see serious involvement from someone with pastoral qualifications and experience. I haven’t been tonsured, at least not yet, and perhaps not ever.

But I would ask priests reading this piece to consider a work on a sort of technological appendix to The Rudder, or maybe I shouldn’t say that because I have only barely sampled the ancient canons. But I would like to see ideally two pastoral works parallel to The Instructor, Book II: one for pastoral clergy use, and one for “the rest of us faithful.” When I was a lay parish representative at a diocesian conference, there was talk about appropriate use of the internet; Vladyka PETER read something that talked about the many legitimate benefits we have received from using computers, but talked about porn on the internet, which is a sewer I haven’t mentioned; he said that young people are spending hours per day looking at porn, and it’s more addictive than some street drugs, and he commented how porn has always been available, but you used to have to put on a disguise and a trenchcoat, and go leave your car in front of a store with the windows covered up, where now, it finds you and it comes free with a basic utility in the privacy of your home. And the biggest thing I can say about freedom from porn comes from the entry for porn in The Luddite’s Guide to Technology:

There is a story about a philosopher who was standing in a river when someone came to him. The philosopher asked the visitor, “What do you want?” The visitor answered, “Truth!” Then the philosopher held the visitor under the water for a little while, and asked him the second time, “What do you want?” The visitor answered, “Truth!” Then the philosopher held the visitor under water for what seemed an interminable time, and let him up and asked, “What do you want?” The visitor gasped and said, “Air!” The philosopher said, “When you want Truth the way you want air, you will find it.”

The same thing goes for freedom from the ever-darker chain called pornography, along with masturbation and the use of “ED” drugs to heighten thrills (which can cause nasty street drug-like effects [and a doomed search for the ultimate sexual thrill that decimates sexual satisfaction] even in marriage).

And I would like to suggest some guidelines for fighting Internet porn, quite possibly the most commonly confessed sin among young men today. Sexual sins are among the most easily forgiven: but they are a deep pit. So, in the interest of providing a “dartboard” draft that’s put out for people to shoot at. I am intentionally saying more rather than less because it’s easier for a pastoral conversation to select from a set of options than furnish arbitrarily more additional options. Here are several things I’d consider, both sacred and secular:

  1. If your right eye offends you, tear it out and throw it away from you: for it is better for you that one part of your body should die than that your whole body should be thrown into Hell.These words are not to be taken literally; if you tore out your right eye you would still be sinning with your left eye, and the Church considers that it was one of Origen’s errors to castrate himself. But this is a forceful way of stating a profound truth. There is an incredible freedom that comes, a yoke that is easy and a burden that is light, when you want purity the way you want “Air!“, and you apply a tourniquet as high up as you need to to experience freedom.Give your only computer power cable to a friend, for a time, because you can’t have that temptation in the house? That is really much better than the alternative. Have the local teenager turn off display of images in Chrome’s settings? That is really much better than the alternative. Webpages may look suddenly ugly, but not nearly as ugly as bondage to porn. Only check email at the library? That is really much better than the alternative. These tourniquets may be revised in pastoral conversation, but tearing out your right eye is much more free and much less painful than forever wanting to be free from addiction to porn, but also secretly hoping to give in to the present temptation; as the Blessed Augustine prayed, “Lord, give me chastity, but not yet.” There is a great deal of power in wanting purity now, and once you go slash-and-burn, the power is amazing.
  2. Install content-control software, such as Norton Family / Norton Family Premier, and have things set up so that only the woman of the house knows the password to make exceptions. There are legitimate needs for exceptions, and I remember being annoyed when I went to customize Ubuntu Christian Edition and finding that a site with all sorts of software to customize the appearance of Ubuntu was blocked, apparently because of a small sliver of soft porn in the wallpaper section of a truly massive site. There will be legitimate exceptions, but it cuts through a lot of self-deception if you get the exception by asking your wife.
  3. Don’t bother trying to find out how to disable porn mode “Incognito Mode” on your browser; set up a router to log who visits what websites. However much browser makers may tout themselves as being all for empowerment and freedom, they have refused to honor the many requests of men who want freedom from porn and parents who care for their children in many, many voices asking for a way to shut off porn mode.There is an antique browser hidden in /usr/bin/firefox on my Aqua-themed virtual machine, but even with that after a fair amount of digging, I don’t see any real live option to browse for instance Gmail normally with a browser that doesn’t offer porn mode. But there is something else you should know.Routers exist that can log who visits what when, and if you know someone who is good with computers (or you can use paid technical support like the Geek Squad), have a router set up to provide a log of what computers visited what URLs so that the wife or parents know who is visiting what. The presence of a browser’s porn mode suddenly matters a lot less when a router records your browsing history whether or not the browser is in porn mode.
  4. Rein in your stomach. Eat less food. Fast. It is a classic observation in the Orthodox spiritual tradition that the appetites are tied: gluttony is a sort of “gateway drug” to sexual sin, and if you cut away at a full stomach, you necessarily undermine sexual sin and have an easier contest if you are not dealing with sexual temptation on top of a full stomach.And it has been my own experience that if I keep busy working, besides any issues about “Idle hands are the Devil’s workshop,” the temptation to amuse and entertain myself with food is less. So that cuts off the temptation further upstream.If you eat only to nourish the body, it helps. Even if nourishing food tastes good, cutting out junk like corn-syrup-loaded soft drinks, or anything sold like potato chips in a bag instead of a meal, and moderating consumption of alcohol (none before going to bed; it doesn’t help), will help.
  5. When you are tempted, ask the prayers of St. John the Much-Suffering of the Kiev Near Caves, perhaps by crossing yourself and saying, “St. John the Much-Suffering, pray to God for me.” In the Orthodox Church you may ask the prayers of any saint for any need, but St. John is a powerful intercessor against lust. That is part of why I asked Orthodox Byzantine Icons to hand-paint an icon of St. John for me: a little so I would have the benefit of the icon myself, and the real reason because I wanted Orthodox Byzantine Icons’s catalogue to make available the treasure of icons of St. John the Much-Suffering to the world, which they would.Other saints to ask for prayer include St. Mary of Egypt, St. Moses the Hungarian, St. Photina, St. Thais of Egypt, St. Pelagia the Former Courtesan, St. Zlata the New Martyr, St. Boniface, St. Aglaida, St. Eudocia, St. Thomais, St. Pelagia, St. Marcella, St. Basil of Mangazea, St. Niphon, and St. Joseph the Patriarch. (Taken from Prayers for Purity.)
  6. Buy and pray with a copy of Prayers for Purity when you are tempted, and when you have fallen. It is an excellent collection and helps when you know you should praying but words are not coming to mind.
  7. If you have been wounded, bring your wound to confession the next weekend. (And try to have a rule of going to church each week.)It can be powerful, when you are facing a temptation, not to want to confess the same sin again in a couple of days.But in parallel with this remember when a visitor asked a saintly monk what they did at the monastery, and the saintly monk answered, “We fall and get up, fall and get up, fall and get up.” Fall down seven times and rise up eight: fall down seventy-seven times and rise up seventy-eight: keep on repenting for as long as you need to to achieve some freedom, and know that some saints before you have risen after falling very many times.
  8. Buy a prayer rope, and use it. When you are tempted, keep repeating a prayer for one prayer rope, and then another, and another, if you need it. Pray “Lord Jesus Christ, Son of God, have mercy on me, a sinner,” or to St. John the Much-Suffering, “Holy Father John, pray to God for me,” or to St. Mary of Egypt, “Holy Mother Mary, pray to God for me.”
  9. Use the computer only when you have a specific purpose in mind, and not just to browse. Idle hands are the Devil’s workshop; For the fascination of wickedness obscures what is good, and roving desire perverts the innocent mind.; Do not look around in the streets of a city, or wander about in its deserted sections. Turn away your eyes from a shapely woman, and do not gaze at beauty belonging to another; many have been seduced by a woman’s beauty, and by it passion is kindled like a fire.Men’s roving sexual curiosity will find the worst-leading link on a page, and then another, and then another. Drop using roving curiosity when you are at a computer altogether; if you need to deal with boredom, ask your priest or spiritual father for guidance on how to fight the passion of boredom. But don’t use the Internet as a solution for boredom; that’s asking for trouble.
  10. Use a support group, if one is available in your area. If I were looking for a support group now, I would call Christian counseling centers in the area if available. Talking with other people who share the same struggle can help.
  11. Use XXXchurch.com, or at least explore their website. Their entire purpose is buying you your freedom from lust.
  12. Yearn for purity.In the homily A Pet Owner’s Rules, I wrote:

    God is a pet owner who has two rules, and only two rules. They are:

    1. I am your owner. Enjoy freely the food and water which I have provided for your good!
    2. Don’t drink out of the toilet.

    Lust is also drinking out of the toilet. Lust is the disenchantment of the entire universe. It is a magic spell where suddenly nothing else is interesting, and after lust destroys the ability to enjoy anything else, lust destroys the ability to enjoy even lust. Proverbs says, “The adulterous woman”—today one might add, “and internet porn” to that—”in the beginning is as sweet as honey and in the end as bitter as gall and as sharp as a double-edged sword.” Now this is talking about a lot more than pleasure, but it is talking about pleasure. Lust, a sin of pleasure, ends by destroying pleasure. It takes chastity to enjoy even lust.

    When we are in lust, God does not seem real to us. Rejecting lust allows us to start being re-sensitized to the beauty of God’s creation, to spiritual sweetness, to the lightness of Heavenly light. Lust may feel like you’re losing nothing but gaining everything, but try to be mindful of what you lose in lust.

And that’s my best stab at making a “dartboard,” meant so people will shoot at it and make something better, and more complete and less one-sided in navigating the pitfalls of technology. This isn’t the only trap out there—but it may be one of the worst.

I would suggest that we need a comprehensive—or at least somewhat comprehensive—set of guidelines for Orthodox use of technology. Such a work might not become dated as quickly as you may think; as I write in the resources section below, I unhesitantly cite a 1974 title as seriously relevant knowing full well that it makes no reference to individually owned computers or mobile devices: it’s a case of “The more things change, the more they stay the same.” Or, perhaps, two works: one for clergy with pastoral responsibilities, and one for those of us laity seeking our own guidance and salvation. I believe that today, we who have forms of property and wealth undreamed of when Christ gave one of the sternest Luddite warnings ever, Do not store up for yourselves treasures on earth, can very easily use things that do not lead to spiritual health: sometimes like how Facebook can erode marriages that are well defended as regards old-school challenges.

The best I know, secondhand perhaps, is that today’s Church Fathers, on Mount Athos perhaps, are simply saying, “Unplug! Unplug! Unplug!” What they want instead sounds like a liberal political-social experiment, where people who have grown up in an urban setting and know only how to navigate life there, will move en masse and form some sort of Amish-like rural communities. Or perhaps something else is envisioned: mass migration to monasteries? Given all that monasticism offers, it seems sad to me to receive the angelic image, of all reasons, only because that’s the only remaining option where you can live a sufficiently Luddite life. I have heard of spiritual giants who incomparably excel me saying that we should stop using recent technology at all. I have yet to hear of spiritual giants who incomparably excel me, and who live in places where technology is socially mandated, advise us to unplug completely. For that matter, I have yet to hear of any Orthodox clergy who live in places in the world where technology is socially mandated say, only and purely, “Unplug! Unplug! Unplug!”

The Orthodox Church, or rather the Orthodox-Catholic Church, is really and truly Catholic, Catholic ultimately coming from the Greek kata, “with”, and holos, “whole”, meaning “with the whole”, meaning that the entirety of the Orthodox Church belongs to every Orthodox-Catholic Christian: the saints alike living and dead, the ranks of priesthood and the faithful, and marriage and monasticism in entirety belong to every Orthodox Christian, every Orthodox-Catholic Christian: and giving the advice “Unplug! Unplug! Unplug!” as the limits of where the Orthodox-Catholic Church’s God and salvation can reach, is very disappointing. It’s comparable to saying that only monastics can be saved.

Total avoidance of all electronic technology is guidance, but not appropriate guidance, and we need advice, somewhat like the advice that began on how to use Facebook, to what I wrote about iPhones or internet porn. A successful dartboard makes it easier to say “What you said about ___________ was wrong because ___________ and instead we should say ____________ because __________.” And I am trying to raise a question. I am trying to raise the question of how Orthodox may optimally use technology in furtherance of living the divine life.

Is astronomy about telescopes? No!

I would close with a quote about technology—or is it? Computer science giant Edgser Dijkstra said,

Computer science is no more about computers than astronomy is about telescopes.

And how much more must Orthodox discussion of how to use technology ascetically be no more about technology than astronomy is about telescopes? The question is a question about spiritial discipline, of how the timeless and universal wisdom of the Bible, the Philokalia, and the canons of the Seven Ecumenical Councils (volume 1, 2).

Resources for further study

Books

All the Orthodox classics, from the Bible on down. The task at hand is not to replace the Philokalia, but to faithfullyadapt the Philokalia (and/or the Seven Ecumenical Councils to a new medium, as it were. The principles of the Bible, the Philokalia, and the Seven Ecumenical Councils are simply not dated and simplydo not need to be improved. However, their application, I believe, needs to beextended. We need ancient canons and immemorial custom that has the weight of canon law: however ancient canons express a good deal more about face-to-face boundaries between men and women than boundaries in Facebook and on smartphones. We need guidance for all of these.

St. Clement of Alexandria, The Instructor. I reference Book II and its chapter on wine as paradigms we might look too.

C.J.S. Hayward, The Luddite’s Guide to Technology. You don’t need to read all of my ebooks on the topic, and they overlap. This one I’m offering because I don’t know of anything better in (attempting to) address classic Orthodox spirituality to the question of ascetical use of technology.

Metropolitan Gregory (Postnikov), How to Live a Holy Life. This 1904 title gives concrete practical instruction. The technology is different from today’s technology, but it serves an interesting and valuable reference point for today.

Jerry Mander, Four Arguments for the Elimination of Television. Mander is a former advertising executive who came to believe things about television, with implications for computers and smartphones, For instance, he argues that sitting for hours seeing mainly the light of red, green, and blue fluorescent pixels is actually awfully creepy. Mander has no pretensions of being an Orthodox Christian, or an Orthodox Jew for that matter, sounded an alarm in his apostasy from advertising that is worth at least hearing out. (Related titles, good or bad, include The Plug-in Drug and Amusing Ourselves to Death.

Online Articles

(The only Orthodox articles I mention are my own. This is not by choice.)

Paul Graham, The Acceleration of Addictiveness. The author of Hackers & Painters raises a concern that is not specifically Orthodox, but “just” human. (But Orthodoxy is really just humanity exercised properly.)

Jeff Graham, Come With Me If You Want to Live – Why I Terminated My iPhone. It contains what look like useful links.

Vince Homan, the newsletter article quoted above. I do not believe further comment is needed.

All the articles below except iPhones and Spirituality are included in The Luddite’s Guide to Technology (paperback, kindle).

C.J.S. Hayward, Technonomicon: Technology, Nature, Ascesis. This is a first attempt to approach a kind of writing common in the Philokalia on the topic of ascetical use of technology.

C.J.S. Hayward, Veni, Vidi, Vomi: A Look at, “Do You Want to Date My Avatar?”. My brother showed me a viral music video, “Do You Want to Date My Avatar?”, very effectively done. This is a conversation hinging on why I viewed the video with horror.

C.J.S. Hayward, Plato: The Allegory of the… Flickering Screen?. With slight, with minimal alterations, the most famous passage Plato wrote speaks volumes of our screens today.

C.J.S. Hayward, iPhones and Spirituality. This piece is partly about appropriate use of smartphones and partly what we lose of real, human life when we lay the reins on the iPhone’s neck. It was originally a Toastmasters speech.

C.J.S. Hayward, The Luddite’s Guide to Technology. This is my most serious attempt at making an encompassing treatment to prepare people for different technologies. Pastor Vince’s article helped me realize it was too much of a do-it-yourself kit, appropriate as far as it goes, but not addressing what the proper pastoral application of the principles should be. And that is why I am writing a piece that will, I hope, provoke Orthodox clergy to expand our coverage in pastoral literature.

Singularity

CJSH.name/singularity

The Best of Jonathan's Corner: An Anthology of Orthodox Christian Theology
Read it on Kindle for $3!

Herodotus: And what say thou of these people? Why callest thou them the Singularity, Merlin?

John: Mine illuminèd name is John, and John shall ye call me each and every one.

Herodotus: But the Singularity is such as only a Merlin could have unravelled.

John: Perchance: but the world is one of which only an illuminèd one may speak aright. Call thou me as one illuminèd, if thou wouldst hear me speak.

Herodotus: Of illumination speakest thou. Thou sawest with the eye of the hawk: now seest thou with the eye of the eagle.

John: If that be, speak thou me as an eagle?

Herodotus: A point well taken, excellent John, excellent John. What speakest thou of the Singularity?

John: A realm untold, to speak is hard. But of an icon will I speak: inscribed were words:

‘Waitress, is this coffee or tea?’

‘What does it taste like?’

‘IT TASTES LIKE DIESEL FUEL.’

‘That’s the coffee. The tea tastes like transmission fluid.’

Herodotus: Upon what manner of veneration were this icon worshipped?

John: That were a matter right subtle, too far to tell.

Herodotus: And of the inscription? That too be subtle to grasp.

John: Like as a plant hath sap, so a subtle engine by their philosophy wrought which needeth diesel fuel and transmission fluid.

Herodotus: [laughs] Then ’twere a joke, a jape! ‘Tis well enough told!

John: You perceive it yet?

Herodotus: A joke, a jape indeed, of a fool who could not tell, two different plants were he not to taste of their sap! Well spoke! Well spoke!

John: Thou hast grasped it afault, my fair lord. For the subtle engine hath many different saps, no two alike.

Herodotus: And what ambrosia be in their saps?

John: Heaven save us! The saps be a right unnatural fare; their substance from rotted carcasses of monsters from aeons past, then by the wisdom of their philosophy transmogrified, of the subtle engine.

Herodotus: Then they are masters of Alchemy?

John: Masters of an offscouring of all Alchemy, of the lowest toe of that depravèd ascetical enterprise, chopped off, severed from even the limb, made hollow, and then growen beyond all reason, into the head of reason.

Herodotus: Let us leave off this and speak of the icon. The icon were for veneration of such subtle philosophy?

John: No wonder, no awe, greeteth he who regardest this icon and receive it as is wont.

Herodotus: As is wont?

John: As is wanton. For veneration and icons are forcèd secrets; so there is an antithesis of the sacra pagina, and upon its light pages the greatest pages come upon the most filled with lightness, the icons of a world that knoweth icons not.

Let me make another essay.

The phrase ‘harmony with nature’ is of popular use, yet a deep slice of the Singularity, or what those inside the Singularity can see of it, might be called, ‘harmony with technology’.

Herodotus: These be mystics of technology.

John: They live in an artificial jungle of technology, or rather an artificial not-jungle of technology, an artificial anti-jungle of technology. For one example, what do you call the natural use of wood?

Herodotus: A bundle of wood is of course for burning.

John: And they know of using wood for burning, but it is an exotic, rare case to them; say ‘wood’ and precious few will think of gathering wood to burn.

Herodotus: Then what on earth do they use wood for? Do they eat it when food is scarce or something like that?

John: Say ‘wood’ and not exotic ‘firewood’, and they will think of building a house.

Herodotus: So then they are right dexterous, if they can build out of a bundle of gathered sticks instead of burning it.

John: They do not gather sticks such as you imagine. They fell great trees, and cut the heartwood into rectangular box shapes, which they fit together in geometrical fashion. And when it is done, they make a box, or many boxes, and take rectangles hotly fused sand to fill a window. And they add other philosophy on top of that, so that if the house is well-built, the air inside will be pleasant and still, unless they take a philosophical machine to push air, and whatever temperature the people please, and it will remain dry though the heavens be opened in rain. And most of their time is spent in houses, or other ‘buildings’ like a house in this respect.

Herodotus: What a fantastical enterprise! When do they enter such buildings?

John: When do they rather go out of them? They consider it normal to spend less than an hour a day outside of such shelters; the subtle machine mentioned earlier moves but it is like a house built out of metal in that it is an environment entirely contrived by philosophy and artifice to, in this case, convey people from one place to another.

Herodotus: How large is this machine? It would seem to have to be very big to convey all their people.

John: But this is a point where their ‘technology’ departs from the art that is implicit in τεχνη: it is in fact not a lovingly crafted work of art, shaped out of the spirit of that position ye call ‘inventor’ or ‘artist’, but poured out by the thousands by gigantical machines yet more subtle, and in the wealth of the Singularity, well nigh unto each hath his own machine.

Herodotus: And how many can each machine can convey? Perchance a thousand?

John: Five, or six, or two peradventure, but the question is what they would call ‘academical’: the most common use is to convey one.

Herodotus: They must be grateful for such property and such philosophy!

John: A few are very grateful, but the prayer, ‘Let us remember those less fortunate than ourselves’ breathes an odor that sounds truly archaical. It sounds old, old enough to perhaps make half the span of a man’s life. And such basic technology, though they should be very much upset to lose them, never presents itself to their mind’s eye when they hear the word ‘technology’. And indeed, why should it present itself to the mind his eye?

Herodotus: I strain to grasp thy thread.

John: To be thought of under the heading of ‘technology’, two things must hold. First, it must be possessed of an artificial unlife, not unlike the unlife of their folklore’s ghouls and vampires and zombies. And second, it must be of recent vintage, something not to be had until a time that is barely past. Most of the technologies they imagine provide artificially processed moving images, some of which are extremely old—again, by something like half the span of a man’s life—while some are new. Each newer version seemeth yet more potent. To those not satisfied with the artificial environment of an up-to-date building, regarded by them as something from time immemorial, there are unlife images of a completely imaginary artificial world where their saying ‘when pigs can fly’ meaning never is in fact one of innumerable things that happen in the imaginary world portrayed by the technology. ‘SecondLife’ offers a second alternative to human life, or so it would seem, until ‘something better comes along.’

Herodotus: My mind, it reeleth.

John: Well it reeleth. But this be but a sliver.

For life to them is keeping one’s balance on shifting sand; they have great museums of different products, as many as the herbs of the field. But herein lies a difference: we know the herbs of the field, which have virtues, and what the right use is. They know as many items produced by philosophy, but they are scarce worse for the deal when they encounter an item they have never met before. For while the herbs of the field be steady across generations and generations, the items belched forth by their subtle philosophy change not only within the span of a man’s life; they change year to year; perchance moon to moon.

Herodotus: Thou sayest that they can navigate a field they know not?

John: Aye, and more. The goal at which their catechism aims is to ‘learn how to learn’; the appearance and disappearance of kinds of items is a commonplace to them. And indeed this is not only for the items we use as the elements of our habitat: catechists attempt to prepare people for roles that exist not yet even as the students are being taught.

Though this be sinking sand they live in, they keep balance, of a sort, and do not find this strange. And they adapt to the changes they are given.

Herodotus: It beseemeth me that thou speakest as of a race of Gods.

John: A race of Gods? Forsooth! Thou knowest not half of the whole if thou speakest thus.

Herodotus: What remaineth?

John: They no longer think of making love as an action that in particular must needeth include an other.

Herodotus: I am stunned.

John: And the same is true writ large or writ small. A storyteller of a faintly smaller degree, living to them in ages past, placed me in an icon:

The Stranger mused for a few seconds, then, speaking in a slightly singsong voice, as though he repeated an old lesson, he asked, in two Latin hexameters, the following question:

‘Who is called Sulva? What road does she walk? Why is the womb barren on one side? Where are the cold marriages?’

Ransom replied, ‘Sulva is she whom mortals call the Moon. She walks in the lowest sphere. The rim of the world that was wasted goes through her. Half of her orb is turned towards us and shares our curse. Her other half looks to Deep Heaven; happy would he be who could cross that frontier and see the fields on her further side. On this side, the womb is barren and the marriages cold. There dwell an accursede people, full of pride and lust. There when a young man takes a maiden in marriage, they do not lie together, but each lies with a cunningly fashioned image of the other, made to move and to be warm by devilish arts, for real flesh will not please them, they are so dainty in their dreams of lust. Their real children they fabricate by vile arts in a secret place.’

The storyteller saw and saw not his future. ‘Tis rare in the Singularity to fabricate children ‘by vile arts in a secret place’. But the storyteller plays us false when he assumes their interest would be in a ‘cunningly fashioned image of the other’. Truer it would be to say that the men, by the fruits of philosophy, jump from one libidinous dream to another whilest awake.

Herodotus: Forsooth!

John: A prophet told them, the end will come when no man maketh a road to his neighbors. And what has happened to marriage has happened, by different means but by the same spirit, to friendship. Your most distant acquaintanceship to a fellow member is more permanent than their marriage; it is routine before the breakable God-created covenant of marriage to make unbreakable man-made covenants about what to do if, as planned for, the marriage ends in divorce. And if that is to be said of divorce, still less is the bond of friendship. Their own people have talked about how ‘permanent relationships’, including marriage and friendship, being replaced by ‘disposable relationships’ which can be dissolved for any and every reason, and by ‘disposable relationships’ to ‘transactional relationships’, which indeed have not even the pretension of being something that can be kept beyond a short transaction for any and every reason.

And the visits have been eviscerated, from a conversation where voice is delivered and vision is stripped out, to a conversation where words alone are transmitted without even hand writing; from a conversation where mental presence is normative to a conversation where split attention is expected. ‘Tis yet rarely worth the bother to make a physical trail, though they yet visit. And their philosophy, as it groweth yet more subtle, groweth yet more delicate. ‘Twould scarcely require much to ‘unplug’ it. And then, perhaps, the end will come?

Herodotus: Then there be a tragic beauty to these people.

John: A tragic beauty indeed.

Herodotus: What else hast thou to tell of them?

John: Let me give a little vignette:

Several men and women are in a room; all are fulfilling the same role, and they are swathed with clothing that covers much of their skin. And the differences between what the men wear, and what most of the women wear, are subtle enough that most of them do not perceive a difference.

Herodotus: Can they not perceive the difference between a man and a woman?

John: The sensitivity is dulled in some, but it is something they try to overlook. But I have not gotten to the core of this vignette:

One of them indicateth that had they be living several thousand years ago they would not have had need of clothing, not for modesty at least, and there are nods of agreement to her. And they all imagine such tribal times to be times of freedom, and their own to be of artificial restriction.

And they fail to see, by quite some measure, that prolonged time in mixed company is much more significant than being without clothing; or that their buildings deaden all of a million sources of natural awareness: the breeze blowing and the herbs waving in the wind; scents and odours as they appear; song of crickets’ kin chirping and song of bird, the sun as it shines through cloud; animals as they move about, and the subtleties and differences in the forest as one passes through it. They deaden all of these sensitivities and variations, until there is only one form of life that provides stimulation: the others who are working in one’s office. Small wonder, then, that to a man one woman demurely covered in an office has an effect that a dozen women wearing vines in a jungle would never have. But the libertines see themselves as repressed, and those they compare themselves to as, persay, emancipated.

Herodotus: At least they have the option of dressing modestly. What else hast thou?

John: There is infinitely more, and there is nothing more. Marriage is not thought of as open to children; it can be dissolved in divorce; it need not be intrinsically exclusive; a further installment in the package, played something like a pawn in a game of theirs, is that marriage need not be between a man and a woman. And if it is going to be dismantled to the previous portion, why not? They try to have a world without marriage, by their changes to marriage. The Singularity is a disintegration; it grows more and more, and what is said for marriage could be said for each of the eight devils: intertwined with this is pride, and it is only a peripheral point that those who further undefine marriage speak of ‘gay pride’. A generation before, not mavericks but the baseline of people were told they needed a ‘high self-esteem’, and religious leaders who warned about pride as a sin, perhaps as the sin by which the Devil fell from Heaven, raised no hue and cry that children were being raised to embrace pride as a necessary ascesis. And religion itself is officially permitted some role, but a private role: not that which fulfills the definition of religare in binding a society together. It is in some measure like saying, ‘You can speak any language you want, as long as you utter not a word in public discourse’: the true religion of the Singularity is such ersatz religion as the Singularity provides. Real religion is expected to wither in private.

The Singularity sings a song of progress, and it was giving new and different kinds of property; even now it continues. But its heart of ice showeth yet. For the march of new technologies continues, and with them poverty: cracks begin to appear, and the writing on the wall be harder to ignore. What is given with one hand is not-so-subtly taken away with the other. The Singularity is as needful to its dwellers as forest or plain to its dwellers, and if it crumbles, precious few will become new tribal clans taking all necessities from the land.

Herodotus: Then it beseemeth the tragedy outweigheth the beauty, or rather there is a shell of beauty under a heart of ice.

John: But there are weeds.

Herodotus: What is a weed?

John: It is a plant.

Herodotus: What kind of plant is a weed? Are the plants around us weeds?

John: They are not.

Herodotus: Then what kinds of plants are weeds?

John: In the Singularity, there is a distinction between ‘rural’, ‘suburban’, and ‘urban’: the ‘rural’ has deliberately set plants covering great tracts of land, the ‘suburban’ has fewer plants, if still perhaps green all around, and the ‘urban’ has but the scattered ensconced tree. But in all of them are weeds, in an urban area plants growing where the artificial stone has cracked. And among the natural philosophers there are some who study the life that cannot be extinguished even in an urban city; their specialty is called ‘urban ecology’. The definition of a weed is simply, ‘A plant I do not want.’ We do not have weeds because we do not seek an artificial envionment with plants only present when we have put them there. But when people seek to conform the environment to wishes and plans, even in the tight discipline of planned urban areas, weeds are remarkably persistent.

And in that regard, weeds are a tiny sliver of something magnificent.

Herodotus: What would that be?

John: The durability of Life that is writ small in a weed here in the urban, there in the suburban is but a shadow of the durabiity of Life that lives on in the sons of men. Mothers still sing lullabyes to their dear little children; friendships form and believers pray at church far more than happened in the age where my story was told, a story dwarfed by what was called the ‘age of faith’. The intensity of the attacks on the Church in a cruel social witness are compelled to bear unwilling witness to the vitality of the Church whose death has been greatly exaggerated: and indeed that Church is surging with vitality after surviving the attacks. The story told seems to tell of Life being, in their idiom, ‘dealt a card off every side of the deck’—and answering, ‘Checkmate, I win.’ I have told of the differences, but there are excellent similarities, and excellent differences. For a knight whoso commandeth a wild and unbridled horse receiveth greater commendation than a knight whoso commandeth a well-bred and gentle steed.

Herodotus: The wind bloweth where it listeth. The just shall live by his faith. Your cell, though it be wholly artificial, will teach you everything you need to know.

John: Thou hast eagerly grasped it; beyond beauty, tragedy, and beyond tragedy, beauty. Thou hast grasped it true.

[Here ends the manuscript]

The Most Politically Incorrect Sermon in History: A Commentary on the Sermon on the Mount

CJSHayward.com/sermon

The Best of Jonathan's Corner: An Anthology of Orthodox Christian Theology
Read it on Kindle for $3!

Blessed are the poor in spirit: for theirs is the kingdom of heaven.

“Blessed are the poor in spirit:” here begin the Beatitudes, a ladder reaching to the expanse of Heaven.

Poor in spirit was the Theotokos whose scandalous pregnancy helped prepare the way for the scandal of the cross. Poor and humble in spirit was the one who humbly prayed the doxology, the Magnificat:

My soul doth magnify the Lord,
And my spirit hath rejoiced in God my Saviour.
For he hath regarded the low estate of his handmaiden:
For, behold, from henceforth all generations shall call me blessed.
For he that is mighty hath done to me great things; and holy is his name.
And his mercy is on them that fear him from generation to generation.
He hath shewed strength with his arm;
he hath scattered the proud in the imagination of their hearts.
He hath put down the mighty from their seats,
and exalted them of low degree.
He hath filled the hungry with good things;
and the rich he hath sent empty away.

To be poor and humble in spirit is the first rung on a ladder that climbs to Heaven.

Blessed are they that mourn: for they shall be comforted.

This life was given to us for repentance. Repentance is terrifying as a prospect; it seems like mournfully letting go of something we must have. Then when we let go, we find ourselves in a space more spacious than the Heavens, and realize, “I was holding on to a piece of Hell!”

To those who mourn their sins, who cry out for mercy, Christ answers by pouring out mercy and comforting them. But it is nonsense to expect such comfort without mourning; comfort is the fruit that men eat when they have planted it as a seed of mourning. And the fruit would have no taste to one who had not done the work of planting the seeds. Heaven offers nothing the mercenary soul can desire, and the Fire of Hell is itself the Light of Heaven as it is experienced through the rejection of the only Joy that we can have: Christ himself.

Blessed are the meek: for they shall inherit the earth.One person I heard years ago said that the term “meek” in Greek was a term one would use of a horse that for all its strength was under disciplined control, and so to be “meek” was power under control. And that reading, however good or bad it may be from a scholarly perspective, is spiritual poison: it castrates the words that are meant to be an insult to our pride.

Part of what is not communicated clearly is that a “meek” horse was under disciplined control from another; from its rider: a meek horse was not exceptionally good at marching to the beat of a different drummer! A meek horse, like you or me, is under authority, under headship, and to be meek is defined by that headship. And this unfolds in showing meekness before others: the Lord was meek before his accusers because he was meek to his Father and Head. The meekness we are meant to have has an aspect of discipline, even power, but it is neither ungrounded nor headless; it reflects the headship of Christ and others over us.

The Sermon on the Mount is intended to build power in the reader; but part of this power is the power of humility, and to be able to interpret “Blessed are the meek” without seeing a challenge to one’s pride is poison. One time I confessed pride in my intelligence, and the priest told me quite emphatically, “The only true intelligence is humility!” Humility is the mortar that holds together all spiritual bricks and stones, the virtues in the spiritual life and the Sermon on the Mount. And we need the humbling spiritual training ground of meekness if we are going to get anywhere. Crediting ourselves with “strength under control” is worthless, penny wise and pound foolish, or worse.

Blessed are they which do hunger and thirst after righteousness: for they shall be filled.

Blessed are those who hunger and thirst for what is truly good for them: for they shall be satisfied.

The Greek term translated ‘blessed’ at one stroke means both happy and blessed. So this beatitude could be rephrased, “Blessed are those who seek for the only happiness there is; for they will be satisfied. (Others who seek happiness in the wrong places can never be satisfied, even if they find it: “Two great tragedies in life: not to find one’s heart’s desire, and to find it,” applies to that case.)

Blessed are the merciful: for they shall obtain mercy.Here and now I would underscore something that may not have needed such emphasis in other times: the word translated “mercy” refers both to God’s love, in “Lord Jesus Christ, Son of God, have mercy on me, a sinner,” or giving money. St. John the Merciful and St. Philaret the Merciful are both called merciful because they are generous to those who beg them.

Now here I am entering a controversial point because many people say that it does no true help to give money to a beggar; and this is not simply an excuse of stinginess. You will hear this argument being made by people who work in soup kitchens and really care about the poor. And I would more pointedly bring something from a conversation with a friend, after we had given some money to a beggar and he quoted an anecdote where two friends were walking, one of them gave a little money to a beggar, and the other said afterwards, “You realize that he’d have probably drunk it?” and the first answered, “Yes, but if I’d have kept I’d have probably drunk it,” and I stridently objected to this anecdote. I told him that I would have no qualms about buying my next drink, or my friend’s next drink, but I would have every objection to buying the next drink for a pastor we both loved, who was an alcoholic: perhaps he had been stone cold sober for decades, but he was an alcoholic and I saw nothing good in giving him his next drink.

With that stated, all Orthodox priests I’ve heard on the topic say that you give something to beggars. Money. Not very much, necessarily, an amount that is entirely within your power. But it is worth considering carrying a pouch for change to give. Maybe it would also make sense to give fresh oranges or clementines (don’t give apples; people who have lost teeth have trouble with them), or chocolates. But when you give a beggar money, you are treating that person as a moral agent made in the image of God, and if he uses it wrongly, you have no more sinned than God has sinned by giving you blessings that you use wrongly. But in any show mercy and give something, with a kind look, as well as being merciful in other areas of your life, and you will be shown mercy in the more serious areas of your own life.

Be faithful to your neighbor in little, and God will be faithful to you in much. Be merciful to your neighbor in little, and God will be merciful to you in much. (Blessed are the merciful, for they shall be shown mercy.)

Blessed are the pure in heart: for they shall see God.

Blessed are those who seek what they ought to seek, for they will receive it.

The saints shall see God: saint and sinner alike shall see the Uncreated Light which shone on Mount Tabor. God is Light; he cannot but shine, and can only shine in fulness, for every creature, for the saved and for the damned. Then why say, “Blessed are the pure in heart” as if they alone will see God?

The answer is that the pure in heart will see God in their ultimate triumph, while the impure will see God in their ultimate defeat. God cannot do anything but shine in his Light; creatures cannot be happy, blessedly happy, except that they see this light. Now it may only be a mediated, dimmed, filtered, metaphorical sight of God who is Uncreated Light, but still: blessedness is the only entryway to happiness. (If in fact they really are two different things.)

Blessed are the peacemakers: for they shall be called the children of God.

In English, “peace” often means the absence of violence, though something that is soothing may be called “peaceful.” In Hebrew and in Greek, the defining characteristic is not the absence of violence, but a state of well-being where love is manifest. The predominant, though not exclusive, sense is of divine blessing. One may be a peacemaker by quelling violence, but the broader sense is a way of life where divine love is manifest.

Blessed are they which are persecuted for righteousness’ sake: for theirs is the kingdom of heaven.

We are entering a time of trial, when darkness rises. When I was a boy it seemed obvious to me that I had good chances of living to a ripe old age. Now it seems much more possible that I may endure persecution at least. Or at least face persecution; I would compare myself to a poorly trained soldier on the eve of a battle. But the stronger persecutions get, the more powerfully some of these passages speak. The Sermon on the Mount was not given to people whose lives would be comfort and ease. The Sermon on the Mount was given to people where persecution was a fact of life, and this beatitude has good news: persecution for righteousness’ sake is the privilege of the Kingdom of Heaven. We know enough of earthly privileges: a car, a big house, the respect of others. But persecution for righteousness’ sake is not meaningless; it is the token by which saints are given the Kingdom of Heaven.

Blessed are ye, when men shall revile you, and persecute you, and shall say all manner of evil against you falsely, for my sake. Rejoice, and be exceeding glad: for great is your reward in heaven: for so persecuted they the prophets which were before you.

In Hebrew, to repeat an adjective three times is to give superlative force: in Isaiah 6, the seraphs call to each other, “Holy, holy, holy, is the LORD of Hosts.” Here we have the same beatitude repeated three times in three wordings. The point is emphasized. The first time, Christ says, “Blessed are they…” as it speaking of others. Now he says, “Blessed are ye…” and addresses us directly. He strengthens those who will be persecuted for the sake of righteousness, and underscores the heavenly privilege of being “counted worthy to suffer shame for his name” (Acts 5:41).

Persecution and defamation are how the world heralds true sons of God. Satan is the ultimate sore loser, and these blows struck from below acknowledge that one is ascending into Heaven.

Ye are the salt of the earth: but if the salt have lost his savour, wherewith shall it be salted? it is thenceforth good for nothing, but to be cast out, and to be trodden under foot of men. Ye are the light of the world. A city that is set on an hill cannot be hid.Neither do men light a candle, and put it under a bushel, but on a candlestick; and it giveth light unto all that are in the house. Let your light so shine before men, that they may see your good works, and glorify your Father which is in heaven.

During one scandal about baseball players abusing steroids, the question was raised of what a terrible example these athletes were to younger kids looking up to them as role models. Some had the audacity to protest, “But I never tried or sought out to be a role model,” and other people said, “Sorry, buddy, you are. The question is not whether an athlete like you is a role model. The question is whether an athelete like you is a good role model, or a bad role model. You are a role model.”

The Sermon on the Mount does not say that if we are very holy we may become the salt of the earth and the light of the world; it says that we are, fullstop. We can lose our saltiness and become worthless as salt; but the question is not whether we are holy enough to be salt of the earth and light of the world. We aren’t, but that’s beside the point. The only question is whether we exercise this role well or poorly.

Think not that I am come to destroy the law, or the prophets: I am not come to destroy, but to fulfil. For verily I say unto you, Till heaven and earth pass, one jot or one tittle shall in no wise pass from the law, till all be fulfilled. Whosoever therefore shall break one of these least commandments, and shall teach men so, he shall be called the least in the kingdom of heaven: but whosoever shall do and teach them, the same shall be called great in the kingdom of heaven. For I say unto you, That except your righteousness shall exceed the righteousness of the scribes and Pharisees, ye shall in no case enter into the kingdom of heaven.

Christ changes things, but if you think he is a way to dodge the hard parts of the Law, you have another think coming.

The story of the woman at the well is a story where shame loomed large. The woman came to draw water alone because she had a terrible reputation, and when Christ announced living water, she sought his help running for her shame. Read her story; Christ offers no help in escaping her shame, but instead pulls her through her shame to the other side, when she ran through the village, freed from her shame, announcing, “Come and see a man who told me everything I ever did!”

If we seek Christ to provide an easy way out of the hard parts of the Law, we seek the impossible.

But Christ can pull us through to the other side.

Ye have heard that it was said by them of old time, Thou shalt not kill; and whosoever shall kill shall be in danger of the judgment: But I say unto you, That whosoever is angry with his brother without a cause shall be in danger of the judgment: and whosoever shall say to his brother, Raca, shall be in danger of the council: but whosoever shall say, Thou fool, shall be in danger of hell fire. Therefore if thou bring thy gift to the altar, and there rememberest that thy brother hath ought against thee;Leave there thy gift before the altar, and go thy way; first be reconciled to thy brother, and then come and offer thy gift. Agree with thine adversary quickly, whiles thou art in the way with him; lest at any time the adversary deliver thee to the judge, and the judge deliver thee to the officer, and thou be cast into prison. Verily I say unto thee, Thou shalt by no means come out thence, till thou hast paid the uttermost farthing.

These are strong words, and if you ask if this is an example of “hyperbole”, then if you mean by “hyperbole” a way to dodge their force, then no, they are not hyperbole.

Some of the Fathers look for a more than literal sense: “Agree with thine adversary quickly” does not refer to a man, but our ever-accusing conscience. And though few have had spine enough to leave a gift before an altar, we offer wrongly if we go to the altar without first coming terms with the other person.

More broadly, these words are not an exaggeration of “First things first.” These words are forceful at a point where the truth is forceful, and we gain something when we look for, not less than these words would appear to offer, but more. For one example, when we have offended another person, the wrong thing to do is hope it will go away, hope that if you forget about the whole deal the other person will to. You are in their eyes as one justly in prison, and will remain so until you have made amends, and that to the uttermost farthing: “almost satisfied” is a very bad resting place.

Even when there was no question of conflict, the principle applies. One of my responsibilities as a web designer at my university was to take portraits of faculty members, and you could tell the difference between when a professor was happy with a picture, and when she was almost happy with the picture. There were times when a professor was almost happy and thoughtfully talked about wrapping up the photo shoot and moving on, and that was an ending I avoided like the bubonic plague. I would rather spend a full hour shooting photos to get one the professor was happy with, and have both of us walk away happy, than have the professor decide, “I’ve taken enough of your time,” and walk away almost happy. In practice it never took anywhere near an hour, but better devote an hour to getting the other person happy, to the uttermost farthing, and both walk away happy, than say, “Well, I suppose this is good enough.” Better to pay the uttermost farthing.

Ye have heard that it was said by them of old time, Thou shalt not commit adultery: But I say unto you, That whosoever looketh on a woman to lust after her hath committed adultery with her already in his heart.

This being commentary on the world’s most politically incorrect sermon, perhaps it might be appropriate to give a few words here on unnatural vice.

In one sense sin and vice are never natural. But there are vices that are unnatural, such as (among sexual vices) contraception. To people who find that identification of unnatural vice, I extend an invitation to read Orthodoxy, contraception, and spin doctoring: A look at an influential but disturbing article, in which I tear to shreds the article that defined the (hotly contested) “new concensus” that contraception is permissible to Orthodox provided you follow a few guidelines.

There is a shift between patristic times and our day; it may well be that an Orthodox monk in America interacts more with women than a married Orthodox Christian in patristic times. The old rule was, “Don’t go to your wife unless you’re going to her to try to make a baby.” And over time this harsh position has been progressively softened, and an I would be overstepping to suggest a reconstitution of the ancient rule. But there has been a progression over history; once people changed their minds and said that it is permissible to have sex during the infertile period despite the infertility to such acts, to some saying that it is permissible to limit sex to the infertile period in order to enjoy sex without the encumbrance of fertility. We have no entitlements, but we believe we are entitled to the pleasure of sex without the encumbrance of fertility. And in recent years we have pursued this sexual perversion further, and a man who has trouble getting it up once is entitled to ED drugs. Far from a St. Maximus Confessor who regarded the pleasure of sex as not spiritually helpful and regarded sex as wrong when a man approached a woman other than his wife or approached his wife for a purpose other than conceiving a child, we understand sex as good in terms of being a potent “pleasure delivery system.” And, pop culture notwithstanding, we don’t need a pleasure delivery system. It is almost an act of counterculture for Orthodox Christians to refuse to practice more unnatural vice than the Greeks of Foucault’s History of Sexuality, where one philosopher was asked, “How often should I have sex?” and gave the answer, “As often as you wish to deplete your energy.” It’s not just that ancient Orthodoxy exercised a tad bit more self-control in sex than we do; queer Greek philosophers were also just a little more self-restrained than us.

And a note to those anticipating at least a mention of queer sexuality, I will say this. Hillsboro Baptist Church may be Christianity’s greatest gift to queer advocacy yet. It spares gays the trouble of wondering whether a God who loves gays infinitely, and a God who wants far better than gay acts for them, might be one and the same God. Before trying to straighten out queers, we might work on straightening those who appear straight.

Once a great teacher and a truth-seeker were standing in a river. The teacher asked the student, “What do you want?” The truth-seeker said, “Truth.”

Then the teacher plunged the student under the water, and let him up and asked him, “What do you want?” The student said, “Truth!” Then the teacher held the student’s head under the water, and the student struggled and struggled, and finally the teacher let him up and asked him, “What do you want?” The student gasped, “Air!!!” Then the teacher said, “When you want truth the way you want air, you will find it.”

The same thing goes for freedom from porn!

And if thy right eye offend thee, pluck it out, and cast it from thee: for it is profitable for thee that one of thy members should perish, and not that thy whole body should be cast into hell. And if thy right hand offend thee, cut it off, and cast it from thee: for it is profitable for thee that one of thy members should perish, and not that thy whole body should be cast into hell.

In ancient times the concensus was that this cannot be taken literally. If you sin with your right eye and pluck it out, you will go on sinning with your left eye. Furthermore, when a man decided to cut off the problem at its root, the Council condemned self-castration.

However, the fact that these words cannot be literal does not mean that they cannot be true. In ascetical struggle, there will be some sin, some thing to which one is attached in passion, that it seems we cannot live without. To give it up would to be to tear out our right eye or right hand. But the Lord tells us: “Tear out your right eye and your right hand and be free,” and we must cut off our own damnation. Never mind that afterwards we realize that we were afraid of letting go of Hell; never mind that once we have torn out our right eye cut off our right hand we find that we have our right eye and our right hand now more than ever: if cutting off our right hand is the price of freedom, cut it off.

And to pick a salient example: if you are one of many men who does not benefit from having a porn delivery service attached to your computer, cut off the sewer of pornography at whatever level necessary to be free. Censorware exists; not wanting to have to bring a sin to confession exists. Canceling internet service and checking email at libraries is better than having full internet access and taking that path all the way to Hell.

It hath been said, Whosoever shall put away his wife, let him give her a writing of divorcement: But I say unto you, That whosoever shall put away his wife, saving for the cause of fornication, causeth her to commit adultery: and whosoever shall marry her that is divorced committeth adultery.

Marriage is permanent. Civil divorce exists, and the great mercies of Orthodox oikonomia extend to allowing a second or third marriage after divorce, even if they make clear that this is oikonomia. But even with divorce in the picture, marriage is indelible: to put it bluntly, when two divorced people sleep together, there are four people in the bed.

But there is another point to be made: the place of marriage, that is real, full, true marriage in the world today is almost like the place of monasticism in the desert in days past. One monk in the Philokalia wrote that the things that are successes for a man in the world are failures to the monk, and the things that are successes to a monk are failures to a man in the world. A man in the world wants a fine reputation and places of honor, a beautiful wife and fine children, a magnificent and luxurious house, to be able to have his way in what happens, etc. And all of these are ruin to the monk. For the monk, success consists in living in obedience and receiving painful commands, having a spartan cell, enduring shame and dishonor, being cut off from his kin, and so on. And if this happens to the man in the world, some have committed suicide. And there is something strikingly similar, spookily similar, with the faithful married life in the world and classical monasticism.

If we ask what is success in the world as a whole, it is sampling various world spiritualities, having a nice car and house, being able to buy the things you see advertised, and so on and so forth. And not all of these are ruin for faithful married life in the world, but at least the price tags are switched. To faithful married life in the world, doing some nice family activity every week, or even just doing chores together, is much better than two high paying jobs and a nanny. A family presumably means some income, but the faithful living married life in the world are probably not going to be good enough at running the rat race to have much more money than they need (and if they are faithful, they will be more likely to open their hands). None of this is technically a monk’s “vow of poverty,” but between inflation, low income, and debt, the family may have a “virtual vow of poverty.” People in times before have said that marriage and monasticism are two different and possibly opposite ways to reach the same goal, ultimately a goal of living out of love for God. But that’s a decoy to my point here. My point here is that compared to the success and standards of the world around us, faithful married life in the world starts to look a whole lot like monasticism and not much at all like people who look to Starbuck’s and yoga, perhaps also serial monogamy, to fill their deepest needs.

Marriage is given attention in the quite short Sermon on the Mount, and its sanctity is underscored by underscoring its permanence. Especially today, we should give marriage something of the recognition we give monasticism.

Again, ye have heard that it hath been said by them of old time, Thou shalt not forswear thyself, but shalt perform unto the Lord thine oaths: But I say unto you, Swear not at all; neither by heaven; for it is God’s throne: Nor by the earth; for it is his footstool: neither by Jerusalem; for it is the city of the great King. Neither shalt thou swear by thy head, because thou canst not make one hair white or black. But let your communication be, Yea, yea; Nay, nay: for whatsoever is more than these cometh of evil.

To abolish oaths is to make every statement an oath. An oath is specially sanctioned; by saying “You know I am telling truth because I am swearing,” you implicitly say, “This needed because I were not to swear it might be OK for me to lie.”

God swears in the Bible, and St. Paul’s letters contain much swearing, or language that is close to swearing, but none the less it is not only the radical Reformers’ fixation on the Sermon on the Mount that rejected swearing: an Athonite monk refused to swear in court and went, uncomplainingly, through a four month jail term and said, “It may seem a small matter to you, but we recognize something real and important in it.” And, I would expect, truthfulness was enough of this monk’s character that to him every statement was made as if it were an oath.

There is also a second layer, which might be put as follows: “Swear even by your head? Guarantee that something will happen? Do you have any idea that you might not wake up tomorrow, that any number of things might change about your circumstances? Don’t you understand that you cannot make one single hair white or black?”

Ye have heard that it hath been said, An eye for an eye, and a tooth for a tooth: But I say unto you, That ye resist not evil: but whosoever shall smite thee on thy right cheek, turn to him the other also. And if any man will sue thee at the law, and take away thy coat, let him have thy cloak also. And whosoever shall compel thee to go a mile, go with him twain. Give to him that asketh thee, and from him that would borrow of thee turn not thou away. Ye have heard that it hath been said, Thou shalt love thy neighbour, and hate thine enemy. But I say unto you, Love your enemies, bless them that curse you, do good to them that hate you, and pray for them which despitefully use you, and persecute you; That ye may be the children of your Father which is in heaven: for he maketh his sun to rise on the evil and on the good, and sendeth rain on the just and on the unjust. For if ye love them which love you, what reward have ye? do not even the publicans the same? And if ye salute your brethren only, what do ye more than others? do not even the publicans so? Be ye therefore perfect, even as your Father which is in heaven is perfect.

Is there a just war? No and never; Orthodox soldiers who kill in war must do penance. The treasury of Orthodox saints includes mighty warriors like St. George, and passion-bearers like the princes Boris and Gleb who allowed themselves to be murdered by wicked rulers usurping their throne. But even St. George did not defend himself from being martyred.

But the point here is not overstated; if anything, it is understated. It may or may not be right to defend oneself, one’s loved ones, one’s country, by force of arms. There may be oikonomia, leniency, to defend oneself by force even though it injures others’ bodies. But the Christ before Pilate not only did not defend himself by violence; he did not resist evil even by words. And Orthodox tradition has picked up on this and said that monks are to remain silent before their accusers and not even defend themselves by words. And it is a strange thing to say that we may never injure another’s body to defend ourselves; it is beyond strange to say we may not defend ourselves even by healing another’s understanding. But let us recall Christ on trial. Christ did not do what was expected, make any defense against the many allegations brought before him; his entire passion is a living exposition of the claim, “My kingdom is not of this world.” And this is not just that Christ’s disciples did not defend him beyond cutting off Malchus’ ear (whom Christ healed), but there is something positive we will forever miss if we say that in the ideal we may not defend ourselves even by trying to heal the poison others hold in their mind when they accuse us.

When Christ had refused to play along with the Sanhedrin, the astonished Pilate asked him, “Don’t you know I have the power to crucify you or to free you?” Or, to paraphrase, “Don’t you see that I have all the cards in my hand, and you have none?” And Pilate was terrified as their exchange unfolded; Christ made no effort to free himself and Pilate did not know what power he was dealing with but knew that he was dealing with a power next to which his power, his pomp, his authority was but dust and ashes. Pontius Pilate sensed that he was a chintzy wooden puppet king passing judgment on the first real man he’d met. After then, Christ was crucified, but the grave was not big enough to hold him, and is the grave, not Christ, that lost in the exchange. In the Resurrection of Christ, when the Devil appeared to have managed a decisive and final victory, “God the Game Changer” trumpeted, “Checkmate!”


And here we come to something politically incorrect enough that most readers will read the text and be blithely unaware of it. It doesn’t even show up as a blip on the radar.

Perhaps the best way to portray it, or at least the best I can find, is to portray two archetypes, the archetypes of the Saint and the Activist, which define a polarity. The Saint, as I use the term here, consists mostly of people who will never see canonization as formal saints, and the Activist includes mostly people who don’t think of themselves as activists, not any more than people who use cars, trains, busses, and airplanes think of themselves as “motor vehicle enthusiasts.” The Activist prays, if anything, “Lord, help me change the world,” and is concerned with the sewer of problems in the world around. The saint prays, “Lord Jesus Christ, Son of God, have mercy on me, a sinner,” and is concerned with the sewer of problems within. (G.K. Chesterton won an essay contest, and also wrote the shortest letter to the editor on record, answered the question, “What is wrong with the world?” with a Saint’s, “Sir, I am.“) The Saint may end up changing the world; in the end the Saint will end up changing the world, but that must never be his goal. “Save yourself, and ten thousand around you will be saved,” is not about the need to straighten out ten thousand people, but the need to straighten out one, and the one person you may least wish to correct. The Activist says, “Let there be peace on earth, and let it begin with me.” The Saint says, “Be it unto me according to thy word;” Could any difference be greater?

Since the Catholic Church, one could say, self-amputated from Orthodoxy in 1054, East and West have been separated by a growing chasm, and in an inconsistency I will use ‘East’ to refer to the Eastern Orthodox Church (though, in this regard, it shares much with Hinduism, (more subtly) Islam, Jainism, etc.), while by ‘West’ I refer to the broader Western society and specifically include elements that the Roman Catholic Church played no part in. There is a reason for this inconsistency in that the fall of the Roman Church deprived the West of a vital nutrient, however I am simply choosing terms inconsistently to best illuminate something.

In the West, the figure of the Renaissance magus looms large and still has a shadow today: job ads I see calling for an Ajax ninja or a Rails rockstar echo the Renaissance magus. The Eastern figure was the humble member of a community, one strand of an intricately woven web, relating to society, culture, and the Church as one relates to a mother. But the Renaissance magus, besides freely engaging the occult, stood over and against society, and regarded one’s culture as a sort of a despicable raw material that would gain value only insofar as one would transform it to something better. And this attitude represented a novelty, or at least an aberration, to Orthodoxy. It would come across a bit like telling the mother who gave you birth, “You know, I don’t like the way your body is arranged. You have one arm more than you need; we can consolidate the musculature to give you a much stronger arm, and move your fingers to your feet so that you can easily use your feet to pick things up. And your present skin color is not nearly so beautiful as the royal purple with which I would see you adorned; you should go through the pain of a whole-body tattoo so that your skin may be regal in its color. And I would like to rearrange a few things inside.” And did I mention that the Renaissance magi claimed equality to Christian saints, saying that the Renaissance magus and the Christian saint were two sides of the same coin?

The Renaissance magus left several strands that are part of the West, and I am not here talking about increasing interest in the occult. I would recall one class where the admittedly flaming liberal professor introduced the topic of “autism and advocacy,” finding it patently obvious that if you care about people on the spectrum, “care” translates immediately to political activism. One of the articles she had chosen was surprisingly a Saint talking about the ascesis of love, the spiritual discipline, of living as a father to an autistic child and facing parenting issues that simply don’t come up with autism-normal children. But to an Activist, the obvious response to the autism spectrum, if you have a heart, is political advocacy. But that isn’t really from the heart, because Activism is from a head severed from the heart. The response that had a heart was the one she was blind to even as she assigned it: the struggle of a father, in the concrete, to love and care for a highly autistic child. This heart had no grand schemes to transform society, even on a smaller level; it was just exercising a Saint’s love and care in whatever concrete situation one is in. Including having a child and discovering that he had some unusual needs and would take a lot of love to care for.

The Activist looms large; it looms large enough that not only do liberals pursue advocacy of liberal agendas, but many conservatives shuffle a few things around and pursue advocacy of a few conservative agendas. This may seem strange enough to say, but I wince at some of the conservative, Christian pro-life advocacy I have seen, because it takes the framework of a liberal activist and fills in the blanks with something conservative instead of something liberal. Being pro-life is an area where political Activism can only take you so far: you cannot reach its heart, until you enter the process of becoing a Saint.

The Saint turns the other cheek. The Activist can only win by earthly victory. The Saint often wins though earthly defeat.

Take heed that ye do not your alms before men, to be seen of them: otherwise ye have no reward of your Father which is in heaven. Therefore when thou doest thine alms, do not sound a trumpet before thee, as the hypocrites do in the synagogues and in the streets, that they may have glory of men. Verily I say unto you, They have their reward. But when thou doest alms, let not thy left hand know what thy right hand doeth: That thine alms may be in secret: and thy Father which seeth in secret himself shall reward thee openly.

Feeding the hungry is greater work than raising the dead. the saints tell us. Fasting benefits you alone; almsgiving also benefits your neighbor. And these things cannot be kept secret. The harder you try to keep your almsgving a secret, the more God will show you off as his faithful Saint.

The spiritual danger of making good deeds a means to praise is like buying food so that you can play with its packaging. It’s entirely backwards, and Christ lays the axe at the root of the tree: he does not chop it off above ground so it will grow back, but cuts as deep in the roots as he needs to do uproot a deadly weed. What God does or does not do in terms of publicizing results is his concern and not ours. Our concern is that it shows severely warped priorities to seek commensurate recognition for your goodness.

I remember wishing, years back, to see some Christian institution name a building after a widow who gave $2.99 a month that she couldn’t afford, out of her husband’s pension.

I have not lost that wish, but I am profoundly grateful that the Orthodox Church names parishes not after money bags, but after a saint or feast who has entered the heavenly mansions and is no longer in danger of sinking into pride from being so honored.

And when thou prayest, thou shalt not be as the hypocrites are: for they love to pray standing in the synagogues and in the corners of the streets, that they may be seen of men. Verily I say unto you, They have their reward. But thou, when thou prayest, enter into thy closet, and when thou hast shut thy door, pray to thy Father which is in secret; and thy Father which seeth in secret shall reward thee openly. But when ye pray, use not vain repetitions, as the heathen do: for they think that they shall be heard for their much speaking. Be not ye therefore like unto them: for your Father knoweth what things ye have need of, before ye ask him.

Almsgiving is not to be trumpeted, but few of us are so stealthy as to give alms without the recipient knowing. But prayer can be done in secret, so only God knows we pray. The text does not have mainly unspoken prayers in mind such as those coming from Protestantism may expect; purely mental prayer is one of a number of kinds of prayer there is, and the text does not discuss prayer without opening one’s lips, but prayer in one’s closet with the door shut, prayer which is presumably spoken aloud. But as with almsgiving, we are to seek secrecy and hidden works, and when we strive to tear away the last shred of wanting to show off our good deeds, God himself will show off our good deeds.

Orthodox writing about “much speaking” take a line of argument one might not get from the “bare text” of “use not vain repetitions.” Essentially, the suggestion is that the bedrock of prayer is not from masterpieces of rhetorical excellence, but rather simple, childlike prayers which are repeated over and over. The Jesus Prayer is the crowning jewel of such prayers. But even then, it is a mistake to think one will be heard for much speaking. The Jesus Prayer is intended to sink down into you from the outside in until it becomes like the blood pulsing through your body, and even in the highest use of the Jesus Prayer there is no expectation that one will be heard from one’s many words. The path that is most abundant in repeated words is the one further from thinking one is heard from much repetition.

And furthermore Christ de-mythologizes God. If the Father is seen as an old man with a beard, it may be entirely relevant to inform him what things one has need of. But Christ will not accept this: God knows, before we begin to ask him, what we need, and he knows better than we do. We are urged on every account to pray, but the burden does not lie on our shoulders to instruct God about what we need.

I may comment briefly that before Bultmann went through his campaign to de-mythologize the Bible, over a thousand years before Pseudo-Dionysius had a campaign to de-mythologize the Bible, and did a better job of it. Here Christ instructs us in appropriate prayer to a de-mythologized God.

After this manner therefore pray ye: Our Father which art in heaven, Hallowed be thy name.

“Our Father:” in these two words alone is something astonishing, something stunning. This prayer is prayed in the Divine Liturgy in the brief period when the holy gifts have become the body and blood of Christ and before they are consumed. It is a singular prayer. And it may be noted that calling God one’s Father is a strong claim in Scripture: to be a son of God is to be divine and from ancient times this prayer was seen in relation to theosis.

The first of seven petitions, “May your name be held holy,” contains the other six. It is as if the prayer is given here, and then a commentary.

Thy kingdom come. Thy will be done in earth, as it is in heaven.

This is an adult prayer. It is not a prayer that everything go according to your wishes, or mine, but God’s. It is a prayer that God’s reign extend, and the earth that is an icon of Heaven may ever be fuller or more complete.

Give us this day our daily bread.

This is the one prayer for material concerns, and it is exceedingly modest. It is kept by us who may have a month’s food on hand as a formality; but to many of those who prayed, it was anything but formality. The faithful needed the days’ bread. And here again it is modest, for it does not say “Give us this week a week’s bread,” but “Give us this day our daily bread.” The prayer is almost a goad to say, “Stop scrambling to enlist God as your helper in your efforts to build a kingdom on earth. Don’t cling to wants. You have legitimate needs, and you are invited, summoned, to ask for your legitimate need of enough bread for today.”

And forgive us our debts, as we forgive our debtors.

We ask God for contradictory things, and we do that all the time. We ask for the peace that belongs to people who are not controlling, and we also ask to be in complete control of others around us. We ask God to help a child make independent adult-like decisions, and we demand that their choice agree with hours. Or we ask God to free us from the misery of alcoholism and addiction, but we ask him to let us keep whatever we are addicted to. With the Blessed Augustine, we pray, “Lord, give me chastity, but not yet.”

It is incoherent, contradictory, to ask for forgiveness when we will not forgive. We owe God billions and billions of dollars, and when he has forgiven us, we demand repayment from our brother who owes a few thousand dollars. Not that a thousand dollars is any trifling sum; it is worth months of income, but if we will not forgive, God’s grace bounces off of us. The door to the heart can only be opened from the inside, but we are confused if we try to open it when we have bolted and barred it with a grudge.

There are seven petitions in this singularly important prayer, and any of them could be commented on at length. In the Sermon on the Mount only this one receives further comment, and it is a comment stark and clear.

And lead us not into temptation, but deliver us from evil: For thine is the kingdom, and the power, and the glory, for ever. Amen.The closing note is not addressed to the Father alone, but asserts all kingdom, power, and authority to the whole Trinity. But the main point I would note is something else.

The prayer is given slightly differently in the Orthodox practice: “And lead us not into temptation, but deliver us from the Evil One,” and then a priest if present adds, “For thine is the kingdom, and the power, and the glory, of the Father, and of the Son, and of the Holy Spirit, now and ever and unto ages of ages. Amen.” “Evil One” replaces “evil” because we are not praying for a delivery from some abstract, depersonalized quality like confusion or misunderstanding, but from the Devil, the Dragon who swept a third of the stars from Heaven.

For if ye forgive men their trespasses, your heavenly Father will also forgive you: But if ye forgive not men their trespasses, neither will your Father forgive your trespasses.

This is the comment mentioned above. All seven petitions are inexhaustible, but this one is clear: it is a stupid thing to hold on to a grudge and expect forgiveness. (Tradition preserves the reason why: it’s like holding shut the door to your heart and inviting God to come in.)

Moreover when ye fast, be not, as the hypocrites, of a sad countenance: for they disfigure their faces, that they may appear unto men to fast. Verily I say unto you, They have their reward. But thou, when thou fastest, anoint thine head, and wash thy face;That thou appear not unto men to fast, but unto thy Father which is in secret: and thy Father, which seeth in secret, shall reward thee openly.

What has been said first of almsgiving, and then of prayer, is said of fasting, is this: if you try to show off, and your purpose is to impress others, then it is hollow and worthless. That is all the reward you will ever have, in this world or the next. But if you conceal it and perform to an audience of One, God himself, it will be full, invaluable, and God himself will show it off. By all means, choose the right path, and it will never be taken from you.

Lay not up for yourselves treasures upon earth, where moth and rust doth corrupt, and where thieves break through and steal: But lay up for yourselves treasures in heaven, where neither moth nor rust doth corrupt, and where thieves do not break through nor steal: For where your treasure is, there will your heart be also.

This says more than the Tao Te Ching which I remember to say, “Halls of gold and jade cannot easily be guarded.” (The implication? If you don’t have halls of gold and jade, neither can you lose halls of gold and jade.) A net of financial security paradoxically becomes one more thing to worry about.

Christ offers very simple investment advice. This investment advice may be beyond the pall even of political incorrectness, but here is his investment plan:

  1. Do not store up financial resources, but give to the poor.
  2. Give freely as an offering to Christ.
  3. Christ will receive your gift as a loan.
  4. Christ will repay you exorbitantly, but on his time and on his terms.

This cuts against the grain of every worldly advice; financial assets that you hold on to are not an asset but a liability. Now some people have said, “We may have things as long as we are not attached to them,” and that is genuinely and fully true, but inner detachment is harder than just getting rid of one’s possessions, and easier to fool yourself.

Having an eartly safety net to do the job of God’s providence is to have an idol. Earthly worldly advice is about how to have enough treasures on earth to support oneself. But they are flimsy, worthless, and the best way to take yourself is not to store up treasures on earth, not to seek one’s providence from earthly treasure, but instead store up treasures of Heaven. And having really and truly thrown yourself on the mercy of God, you will find that God is merciful beyond your wildest dreams.

The light of the body is the eye: if therefore thine eye be single, thy whole body shall be full of light. But if thine eye be evil, thy whole body shall be full of darkness. If therefore the light that is in thee be darkness, how great is that darkness!

“If thine eye be single” has an immediate sense and a more profound sense. Marriage is honorable, but St. Paul warns that if a man is married his eye will not be single because it will be divided between the Lord and his wife. He gives advice but not a command. If it is a hindrance to divide one’s eye between the Lord and one’s spouse, what hindrance must it be to divide one’s eye between the Lord and despicable money!

On a deeper level, I would recall an academic theology who presented as a lesson from computer science that we should switch between several activities rapidly. (In academic theology, the standard way to do name-dropping is to introduce a term from science, usually in a way that scientists could not make head or tail of.) My response was, “This may be true; what it is not is a lesson from science,” but I don’t believe it is true. Far from it, divided attention is a hindrance to earthly success, let alone Heavenly growth; we fragment ourselves in a way that would be unimaginable millenia ago when philosophers said then that we were fragmented.

Progress in monasticism moves through layers of contemplation that let go of worldly things and even what one has grasped in previous layers of contemplation until one is all eye and all beholding the Uncreated Light. The focus becomes progressively like a laser: the monk, who is all eye, has more and more a single eye.

Perhaps there are other ways; reading the Tao Te Ching—or, better, the “Nine Enneads” from Christ the Eternal Tao, may not be on par with the Fathers, but if you let them sink in for decades you may gain something. Or simply be under the fatherly guidance of a good priest who appropriately emphasizes the Jesus Prayer. But in any cae Lao Tzu complained in his day that people had fallen from an eye that is single—let alone Christ— and if we make the same claim, we have gone from out of the frying pan, not into just fire, but into thermite (which has been used to burn through the armor on tanks).

One does not jump in a single moment from dismal conditions to perfection; the standard pastoral advice is to give a little more or cut back a little further, and we will not leap all in one jump from a divided eye to one that is single. But growing towards an eye that is single is growing towards contemplation in the glory we were made for.

No man can serve two masters: for either he will hate the one, and love the other; or else he will hold to the one, and despise the other. Ye cannot serve God and mammon.

Note that Christ does not call Money a servant, but a master. He says not, “No man can have two servants,” but “No man can serve two masters.” If your life is ordered so that you have money and the things money can buy all lined up to serve you, it is in fact you who are serving money. And this is not just some sophisticated insight, but something very basic. St. Paul tells us that the love of money is the root of all evil, and the Philokalia describe the demon of loving money as what would today be described as a “gateway drug”: once one’s spirit is defeated by the love of money, one is passed along to other, worse demons. As regards money, the Sermon on the Mount is uncomfortably clear.

Therefore I say unto you, Take no thought for your life, what ye shall eat, or what ye shall drink; nor yet for your body, what ye shall put on. Is not the life more than meat, and the body than raiment? Behold the fowls of the air: for they sow not, neither do they reap, nor gather into barns; yet your heavenly Father feedeth them. Are ye not much better than they? Which of you by taking thought can add one cubit unto his stature? And why take ye thought for raiment? Consider the lilies of the field, how they grow; they toil not, neither do they spin: And yet I say unto you, That even Solomon in all his glory was not arrayed like one of these. Wherefore, if God so clothe the grass of the field, which to day is, and to morrow is cast into the oven, shall he not much more clothe you, O ye of little faith? Therefore take no thought, saying, What shall we eat? or, What shall we drink? or, Wherewithal shall we be clothed? (For after all these things do the Gentiles seek:) for your heavenly Father knoweth that ye have need of all these things. But seek ye first the kingdom of God, and his righteousness; and all these things shall be added unto you. Take therefore no thought for the morrow: for the morrow shall take thought for the things of itself. Sufficient unto the day is the evil thereof.

Let me make a couple of brief remarks before diving to the core of the passage. First of all, you are making a fundamental error if you assume that “Each day has enough trouble of its own” is only intended for the inhabitants of a mythical and perfect world. It is in fact practical advice for our world, and it is more practical advice for us today than ever. Second, there is a translation issue in that one verse could be rendered, “Which of you by worrying could add a single cubit [a foot and a half] to his height?” or “Which of you by worrying can add a single hour of your span of life,” but in fact the word play admits an apt paraphrase: “Do you think you can add a single hour to your lifespan by worrying? You might as well try to worry your way into being over a foot taller!”

Now to the main point: “Do not store up treasures on earth” and “You cannot serve both God and Money” are not a barbed wire fence that serves only to injure. They protect a paradise which we can live in here and now: if wealthy Solomon in all his splendor could not match the lilies of the field, to what height will we ascend if we let go of taking up God’s responsibility of providing for our needs; we will be as the birds of the air or the lilies of the field, as Adam and Eve naked and innocent in Paradise. We cast ourselves out of Paradise when we open our eyes and say, “What shall we eat?” or “What shall we wear?” But the entire point of the stark, pointed fence is a buildup to a right and proper invitation to live in Paradise here and now. Not later, when the economy might be better. Here and now we are called to enter paradise and live the divine life.

Judge not, that ye be not judged. For with what judgment ye judge, ye shall be judged: and with what measure ye mete, it shall be measured to you again. And why beholdest thou the mote that is in thy brother’s eye, but considerest not the beam that is in thine own eye? Or how wilt thou say to thy brother, Let me pull out the mote out of thine eye; and, behold, a beam is in thine own eye? Thou hypocrite, first cast out the beam out of thine own eye; and then shalt thou see clearly to cast out the mote out of thy brother’s eye. Give not that which is holy unto the dogs, neither cast ye your pearls before swine, lest they trample them under their feet, and turn again and rend you.

I read a woman who was a pillar of the church I grew up in, recounting a civil union and saying, “There was not a dry eye in the place.” Even after I thought, I held my tongue from adding, “Only the sound of angels weeping.”

One of the principles of mystagogy in Orthodoxy is that if you know the truth, and you know someone will reject it, you don’t say it. Come Judgment Day, it is better for the other person to not have rejected the truth. And it is better for you not to have put the other person in that position. But even then we are not to judge; we have acted so that another person will not be Judged on Judgment Day, and who are we to judge? Has God asked our help judging our neighbor?

Someone sins, and that is a stench in God’s nostrils. Then we see it and we judge. Now there are two stenches in God’s nostrils. Is it better for you to leave God with one stench or two?

Ask, and it shall be given you; seek, and ye shall find; knock, and it shall be opened unto you: For every one that asketh receiveth; and he that seeketh findeth; and to him that knocketh it shall be opened.

Keep on asking, and it will be given to you at a time you do not expect it. Keep on seeking, and you shall find at a place you would never imagine. Keep on knocking, and after you are certain your knocking is not working, the door shall be opened to you.

Sometimes it is less painful than this; but we must ask until our voices fail, because sometimes it is not until our voices fail and our petitions seem to have fallen on deaf ears are we ready to have what we ask for. Keep on asking. Keep on seeking. Keep on knocking. And if it is easier than this, count yourself blessed. If it is harder than this, still count yourself blessed. In all cases it is God’s sovereign hand strengthening and growing you in all the ways you would know to ask and all of the ways you would never imagine to ask.

Never stop asking, or seeking, or knocking. And never assume that because you did not instantly receive what you asked, you will never receive what you asked. Never assume that because your request was not granted in the way you envisioned, you will not be given something better that you would never think to ask.

Or what man is there of you, whom if his son ask bread, will he give him a stone? Or if he ask a fish, will he give him a serpent? If ye then, being evil, know how to give good gifts unto your children, how much more shall your Father which is in heaven give good things to them that ask him?

We today, in our political correctness, manage others’ moods by feeding their vices. We give a stream of compliments so others will feel better. Christ does not give a honey-sweet drone of manufactured compliments; he instead calls us “evil” and elsewhere, though he surely is good, reproved even the truthseeker who called him “good.”

Christ says that if evil as we are, we give good gifts to children, how much will the Heavenly Father who is good give anything but excellent gifts? Quite often he gives us better than we asked and we say that our prayers were denied. We have been corrupt enough to ask for a stone to eat, or a serpent, and his work is to wean us from corrupt foods onto foods fitting in every sense to men. The original audience asked God for loaves and fishes, but we would rather have stones and serpents.

Therefore all things whatsoever ye would that men should do to you, do ye even so to them: for this is the law and the prophets.

To pick a nit: the text does not say “Therefore all things whatsoever they would that men should do to you,” but “Therefore all things whatsoever ye would that men should do to you.” The single-word difference is subtle but profound.

wE are to ask for bread and fish. But when others ask for a stone, prayerfully consider giving bread, and when others ask for a serpent, prayerfully consider giving a fish. The time may not be right, or the occasion, but if nothing else we can pray good gifts for them. And do whatever you would want others to do for you if you ARE seeking the Kingdom of Heaven.

Enter ye in at the strait gate: for wide is the gate, and broad is the way, that leadeth to destruction, and many there be which go in thereat: Because strait is the gate, and narrow is the way, which leadeth unto life, and few there be that find it.

At non-Orthodox funerals, I have always heard that the deceased is in Heaven. You die and next you go to Heaven. But there is another quite chilling possibility. Most people go to Hell and perhaps many Orthodox go to Hell. The one time I was closest to dying, I experienced and gave in to extraordinary temptations in my spirit. God graciously provided a way out, but it is common for the dying to be allowed great temptations, and I’m really not sure that if I had died then, in that state, I would be in Abraham’s bosom. As Orthodox we do not say that we have been saved; we might say that we are being saved, but even great saints do not enjoy safety. The story is told of a dying monk who stepped with one foot into Paradise, and the demons said, “Glory to you, you have defeated us,” and the monk said, “Not yet I haven’t,” and pulled the other foot completely into Paradise. The story is also told of a monk who experienced high mystical visions and was brought bodily into Heaven, and then fell and was damned.

Heaven is not the final resting place for everybody in our circle. Many we are connected to can easily be damned, and we ourselves can easily be damned. I am very wary of assuming that I am standing firm, because that is how you fall. And it is clear to me now that I could be damned no matter how good my ascesis looks to me.

Beware of false prophets, which come to you in sheep’s clothing, but inwardly they are ravening wolves. Ye shall know them by their fruits. Do men gather grapes of thorns, or figs of thistles? Even so every good tree bringeth forth good fruit; but a corrupt tree bringeth forth evil fruit. A good tree cannot bring forth evil fruit, neither can a corrupt tree bring forth good fruit. Every tree that bringeth not forth good fruit is hewn down, and cast into the fire. Wherefore by their fruits ye shall know them.

You shall know them by their fruits: not anything else, even ecclesiastical rank.

We live in an age of false prophets, and not just those promoted on Oprah. These words of Christ have never been wisely ignored, but we need them in particular here and now: the fruits of rhetoric, the fruit of people’s personal lives so far as we know them, and the fruit of what happens in their following. The fruit of honest or dishonest, manupilative, shady rhetoric is perhaps the least important of these three, but it is there. The fruit of personal lives is important, though it may be harder to find since anyone can choose whatever image they want on the network: here “the prophet sees through a glass, darkly, while the archivist sees through a microscope, sharply,” (Peter Kreeft), and we do not have an archivist’s knowledge. But perhaps the most important fruit of all is another fruit that cannot be hidden, which is what happens in a person’s wake. Does the prophet leave behind a following with the fragrance of godliness, or a stench of rotting?

Not every one that saith unto me, Lord, Lord, shall enter into the kingdom of heaven; but he that doeth the will of my Father which is in heaven. Many will say to me in that day, Lord, Lord, have we not prophesied in thy name? and in thy name have cast out devils? and in thy name done many wonderful works? And then will I profess unto them, I never knew you: depart from me, ye that work iniquity.

Christ makes his point strongly. He does not say that many whose faith was lukewarm, many whose eyes were not single and whose hearts were divided, will be damned. That is of course true, although many “unlikely candidates” will feast in the Heavenly kingdom. But he puts the point most sharply: among those who seem to have a faith to remove mountains, who in his name have prophesied and cast out demons, who have performed miracles, will be damned.

There is an old Russian folktale that His Eminence KALLISTOS has what he calls an all-purpose story, where there was a woman who was exceedingly sharp and strict in fasting and every legalistic astonishment, and to her astonishment died and found herself in Hell. She called her guardian angel, and asked about what must be a mix-up. The angel asked if there was anything she had done out of charitable love for another, and she mentioned that she had given a long, thin onion to a beggar once. The angel reached out into his pouch, took out the onion, and said, “Here it is. I’ll hold onto one part of it and you hold onto the other, and I will try to pull you out.” The woman took the onion, and the others in Hell saw that she was starting to be pulled up, and began to grab on to her, so that there was a collected web beginning to rise out of the fire of Hell. The woman said, “Stop it! Let go! It’s mine!”, and when she said, “It’s mine!”, the onion snapped, and the woman and all those attached to her fell back into Hell.

Fasting and other disciplines are important, but a legalistic fast that does not arise from Christ knowing you is worthless. Even casting out demons and working miracles is of precious little value if it is not (the power of) Christ in you, the hope of glory. Neither unimpeachable fasting, nor working miracles, nor writing or reading theology, nor even almsgiving, will itself save you from being rightly damned to Hell.

Therefore whosoever heareth these sayings of mine, and doeth them, I will liken him unto a wise man, which built his house upon a rock: And the rain descended, and the floods came, and the winds blew, and beat upon that house; and it fell not: for it was founded upon a rock. And every one that heareth these sayings of mine, and doeth them not, shall be likened unto a foolish man, which built his house upon the sand: And the rain descended, and the floods came, and the winds blew, and beat upon that house; and it fell: and great was the fall of it.

When Y2k was approaching, I believed the grid would go black January 1, 2000. I believed in the worst case scenario, and while I did not have anything near adequate material preparation for this, I was completely wrong.

Completely wrong.

Then why do I feel like I’m crossing my fingers? Every prediction I believed about disaster on January 1, 2000 turned out to be 100% wrong.

The burr under my saddle in saying I was wrong was that I believe I was fully wrong about the details of Year 2000 collapse, but there are still some beliefs I retain. Not, perhaps, that the Y2k prediction was a nice, poetic story, or that I wish to say, Star Wars style, “What I told you was true, from a certain point of view,” but let me outline the beliefs I held surrounding Y2k:

  1. A great disaster will occur immediately on January 1, 2000, and will shut down Western civilization.
  2. If there is a great disaster, we will have physical needs.
  3. If there is a great disaster, we will have spiritual needs.

Now as far as the first point goes, I think it was wrong but not entirely off the mark; I don’t believe so much that deterioration will happen as that deterioration is already happening, and this is a point I don’t really think I need to argue.

Now as regards the second point, I could find survivalist resources galore; if I had more oomph to my opinion, I would have dug much deeper into the copious literature on how to care for one’s material needs if civilization abruptly fell apart on a particular day.

But the third point, the interesting one, is the one I had the most trouble about. It seemed obvious to me that if the grid were to go black, if all normal societal and social patterns were completely disrupted, then we would have other problems besides how much food we had in store and how ready we were to defend our resources. One friend of mine has worked on spiritual retreats for people at the bottom of the totem pole economically socially, recognizing correctly that not only do the people at the bottom of the totem pole benefit from having something in their belly and shelter from the elements, but they could benefit from a spiritual retreat for the same basic reasons middle class people would benefit from a spiritual retreat. And I deeply respect the humanness of that observation. And I asked and poked about psychological and spiritual resources for people surviving disasters, and this point was not one that survivalists seemed to have thought through. The most of a response I could get was, “Buy plenty of condoms and stock up on board games.

I broadened my search, seeing if I could find clues anywhere else, and in fact there were clues. People who had been taken hostage by terrorists for years had established a rhythm of spiritual discipline, and this “treasure from Heaven” fed their spirits in terrible situations. People who survived Nazi and Marxist concentration camps had a spiritual fire already burning. And the core of this fire is found in the Sermon on the Mount.

Therefore whosoever heareth these sayings of mine, and doeth them, I will liken him unto a wise man, which built his house upon a rock: And the rain descended, and the floods came, and the winds blew, and beat upon that house; and it fell not: for it was founded upon a rock. And every one that heareth these sayings of mine, and doeth them not, shall be likened unto a foolish man, which built his house upon the sand: And the rain descended, and the floods came, and the winds blew, and beat upon that house; and it fell: and great was the fall of it.

What is the “flood”? Cancer, adultery, divorce, depression, being a hostage of terrorists or a prisoner of Nazis or Marxists in concentration camps: all of these things are storm and flood flood. That some flood will come is completely non-negotiable. Whether we build on rock or sand is up to us, and as a martial arts instructor said, “The way you practice is the way you will fight:” if you are slow or half-hearted in spiritual disciplines now, you will arrive with disaster on half-baked preparation, whereas if you take to heart the words, “The more you bleed in the dojo, the less you’ll bleed on the street,” you will come to the disaster as one who has already bled, as someone who is ready for the fight.

There are resources on spiritual struggle that go into more detail than this: The Philokalia immediately springs to mind. But there is no text so central as the Sermon on the Mount.

The Commentary

God the Game Changer

God the Spiritual Father

How to Survive Hard Times

Usability, the Soul of Python: An Introduction to Programming Python Through the Eyes of Usability

CJSH.name/python

I would like to begin discussing Python with a feature that causes puzzlement to good programmers first meeting Python: significant whitespace.

Few features in Python are absolutely unique, and Python did not pioneer the concept of significant whitespace. The basic concept in significant whitespace is that how you use spaces, tabs, line breaks, etc. necessarily communicates certain basic aspects of your program, like how individual statements should be grouped together (or not). Previous influential languages to use significant whitespace include Cobol and Fortran, which are known by reputation, a reputation that survives in sayings like, “A computer without Cobol and Fortran is like a slice of chocolate cake without ketchup and mustard,” “The teaching of Cobol cripples the mind. Its teaching should therefore be regarded as a criminal offence,” or “You can tell how advanced of a society we live in when Fortran is the language of supercomputers.” Early exposure to Fortran left an undeniably foul taste in Eric Raymond’s mouth, and when he learned that Python had significant whitespace, he repeatedly described Python’s first impression on him as “a steaming pile of dinosaur dung.”

Since the days of fixed formatting as in Cobol and Fortran, there was the invention of what is called freeform formatting, which means that as long as you follow a few basic rules, you can use whitespace to format your code however you please. The list of languages that have embraced this feature include C, C++, Java, C#, Perl, PHP, and SQL, and that’s really just naming a few of the bigger players. Freeform formatting means that the compiler will accept all of the variations of the “internet user’s drinking song” below as equivalent:

for(i = 99; i > 0; ++i) {
    printf("%d slabs of spam in my mail!\n", i);
    printf("%d slabs of spam,\n", i);
    printf("Send one to abuse and Just Hit Delete,\n");
    printf("%d slabs of spam in my mail!\n\n", i + 1);
}

for(i = 99; i > 0; ++i)
{
    printf("%d slabs of spam in my mail!\n", i);
    printf("%d slabs of spam,\n", i);
    printf("Send one to abuse and Just Hit Delete,\n");
    printf("%d slabs of spam in my mail!\n\n", i + 1);
}

for(i = 99; i > 0; ++i)
  {
    printf("%d slabs of spam in my mail!\n", i);
    printf("%d slabs of spam,\n", i);
    printf("Send one to abuse and Just Hit Delete,\n");
    printf("%d slabs of spam in my mail!\n\n", i + 1);
  }

for(i = 99; i > 0; ++i)
    {
    printf("%d slabs of spam in my mail!\n", i);
    printf("%d slabs of spam,\n", i);
    printf("Send one to abuse and Just Hit Delete,\n");
    printf("%d slabs of spam in my mail!\n\n", i + 1);
    }

Which is best? From a usability standpoint, the braces go with the lines to print out the stanza rather than the for statement or the code after, so the following is best:

for(i = 99; i > 0; ++i)
    {
    printf("%d slabs of spam in my mail!\n", i);
    printf("%d slabs of spam,\n", i);
    printf("Send one to abuse and Just Hit Delete,\n");
    printf("%d slabs of spam in my mail!\n\n", i + 1);
    }

The One True Brace Style did a good job of being thrifty with lines of screen space when monitors were small, but it is confusing now: the close curly brace is visually grouped with lines that follow: if I add a line:

for(i = 99; i > 0; ++i) {
    printf("%d slabs of spam in my mail!\n", i);
    printf("%d slabs of spam,\n", i);
    printf("Send one to abuse and Just Hit Delete,\n");
    printf("%d slabs of spam in my mail!\n\n", i + 1);
}
printf("I suppose even integer overflow has its uses...\n");

the close curly brace is visually grouped with the subsequent exclamation, and not, what would be better, visually grouped with the drinking song’s stanza.

But the issue goes beyond the fact that the common style bold enough to proclaim itself as the One True Brace Style may not be the top usability pick now that we have larger monitors. The styles I mentioned are some of the styles that significant numbers of programmers who care about well-formatted code advocate for; freeform allows for laziness, and for that matter paved the way for one of the first contests elevating bad programming to a refined art form: the International Obfuscated C Code Contest, where C code submitted was code that worked, but top-notch C programmers look at the code and have no idea how it works. (In the Computer Bowl one year, Bill Gates as moderator asked contestants, “What contest, held annually via UseNet, is devoted to examples of obscure, bizarre, incomprehensible, and really bad programming?” An ex-Apple honcho slapped the buzzer and said, “Windows!” The look on Bill Gates’s face was classic, but this answer was not accepted as correct.) But deliberately lazy or inappropriately clever formatting isn’t the real problem here either.

The problem with the fact that people can format freeform code however they want is that people do format freeform however they want. Not only do programmers grow attached to a formatting style, but this is the subject of holy wars; to go through another programmer’s code and change all the formatting to another brace style is quite rude, like a direct invasion of personal space. And no matter what choice you make, it’s not the only choice out there, and sooner or later you will run into code that is formatted differently. And worse than the flaws of any one brace style are the flaws of a mix of brace styles and the fact that they seem to be tied to personal investment for programmers who care about writing code well. Even if there are not ego issues involved, it’s distracting. Like. What. Things. Would. Be. Like. If. Some. English. Text. Had. Every. Word. Capitalized. With. A. Period. Afterwards.

One way of writing the same code in Python would be:

count = 99
while count > 0:
    print u'%d slabs of spam in my mail!' % count
    print u'%d slabs of spam,' % count
    print u'Send one to abuse and Just Hit Delete,'
    count += 1
    print u'%d slabs of spam in my mail!' % count
    print u''

The braces are gone, and with them the holy wars. Whatever brace styles Python programmers may happen to use in languages with braces, all the Python code looks the same, and while the major brace styles illustrated above are a few of many ways the C code could be laid out, there’s only one real way to do it. It would not in principle be very difficult to write a program that would transform freeform syntax to Python, “compiling to Python” so to speak and allowing a freeform variant on Python, but so far as I know it’s never been done; people who have gotten into Python seem to find this unusual feature, shared with some ridiculed predecessors, to be a decision that was done right. And in fact the essay “Why Python?” in which Eric Raymond said that Python’s significant whitespace made the first impression of a “steaming pile of dinosaur dung”, goes on to give Python some singular compliments, saying of one particular good experience with Python, “To say I was astonished would have been positively wallowing in understatement.”

Another point about usability may be made by looking at “natural” languages, meaning the kinds of languages people speak (such as English), as opposed to computer languages and other languages that have been artificially created. Perl is very unusual among computer languages in terms of having been created by a linguist who understood natural languages well; it may be the only well-known programming language where questions like “How would this work if it were someone’s native language?” are a major consideration that shaped the language. But there is a point to be made here about two different types of spoken languages, trade languages and languages that are native languages, that have everything to do with usability.

If you were born in the U.S. and grew up speaking English, you could presumably not just travel around your state but travel thousands of miles, traveling from state to state coast to coast all the while being able to buy food, fuel, lodging, and the like without language being an issue. For that matter, you could probably strike up a meandering chat with locals you meet in obtaining food, fuel, and lodging without language being an issue. Even if their faraway English sounded a little different, you have pretty complete coverage if you know just one language, English. For many people you meet, English would be their native language, too. Spanish is widely spoken and there are large groups with other native languages, but this does not really change the fact that you can travel from coast to coast, buy basic travel necessities, and for that matter chat if you want and only need English.

This is not something universal across the world. Nigeria in Africa is a country about the size of Texas, and it doesn’t have a native language; it has hundreds of them. It is not at all something to be taken for granted that you can travel twenty miles and order food and basic necessities in your native language. (Depending on where you live, if you are a Nigerian, you may regularly walk by people on the street who may be just as Nigerian as you, but neither of you knows the other’s native language.) And in the cultures and peoples of Africa, there is a basic phenomenon of a trade language. A trade language, such as Hausa in Nigeria and much of West Africa, or Swahili in much of East Africa, may or may not have any native speakers at all, but it is an easy-to-learn language that you can use for basic needs with people who do not speak your native language. If you are from the U.S. and were to need a trade language to get along with traveling, perhaps neither you nor the other party would know a trade language like Swahili well enough to have a long and meandering chat, but you would be able to handle basic exchanges like buying things you need. One of the key features of a good trade language’s job description is to be gentle to people who do not eat, sleep, and breathe it.

With that stated, it might be suggested that Perl is the creation of a linguist, but a linguist who seemed not to be thinking about why a language like English is hard for adults to learn and, in its native form, is a terrible trade language. English may be a powerful language and an object of beauty, but what it is not is easy for beginners the way Swahili is. English is considered an almost notoriously difficult language for an adult learner, and even English as a Second Language teachers may need a few sensitivity experiences to understand why the English pronunciation that they find second nature is so tricky and confusing for adult speakers of other languages to pin down. The enormous English vocabulary with so many ways to say things, and the broad collection of idioms, are tremendous tools for the skilled English communicator. It is also a daunting obstacle to adults who need to learn the many ways English speakers may say something to them. English has many things to appreciate as a native language, but these strengths are the opposite of what makes for a good trade language that adults can learn. Perl, designed by a linguist, is a bit like English in this regard. If you’ve given it years and years of hard work, Perl breathes very attractively, a native language to love. But if you’re starting out, it’s needlessly cryptic and confusing: the reasons people love the Pathologically Eclectic Rubbish Lister (as Perl as called by its biggest fans) are reasons it would make a painful trade language. A language like Visual Basic may be said to be the opposite on both counts, as making a very gentle start to programming, but not a good place to grow to be an expert programmer: the sort of place where you’ll be constricted by the language’s ceiling. But Python pulls off the delicate balancing act of working well as a trade language where a programmer can be productive very quickly after starting, and having room to grow for those programmers who are able to experience it more like a native language. Visual Basic is an easy trade language but a limited native language. Perl is a vast native language and painfully vast as a trade language. Python is both an easy trade language for those beginning and a deep native language for gurus.

Perl users have an acronym, TMTOWTDI, pronounced “tim-towdy,” standing for “There’s more than one way to do it.” It has been suggested that top-notch Perl programmers are slightly more productive than top-notch Python programmers, and if you were to speak a computer language natively, Perl would be an excellent choice. But it is not entirely easy to learn or read Perl, and this is not just something that affects novices. A classic joke reads:

EXTERIOR: DAGOBAH–DAY With Yoda strapped to his back, Luke climbs up one of the many thick vines that grow in the swamp until he reaches the Dagobah statistics lab. Panting heavily, he continues his exercises–grepping, installing new packages, logging in as root, and writing replacements for two-year-old shell scripts in Python.

YODA: Code! Yes. A programmer’s strength flows from code maintainability. But beware of Perl. Terse syntax… more than one way to do it… default variables. The dark side of code maintainability are they. Easily they flow, quick to join you when code you write. If once you start down the dark path, forever will it dominate your destiny, consume you it will.

LUKE: Is Perl better than Python?

YODA: No… no… no. Quicker, easier, more seductive.

LUKE: But how will I know why Python is better than Perl?

YODA: You will know. When your code you try to read six months from now.

This difference boils down to usability. It is a truism that code is read many more times than it is written, and write-only code is very much “the dark side of code maintainability.” Someone said, “Computer scientists stand on each other’s shoulders. Programmers stand on one another’s toes. Software engineers dig one another’s graves,” and write-only code is code with bad programmer usability, and a way of digging your own grave.

Perl carries on a tradition of one-liners, a program that has only one clever line, like:

perl -lne '(1x$_) !~ /^1?$|^(11+?)\1+$/ && print "$_ is prime"'

There is a tradition of writing programs like these that show off your cleverness. The Python community does not favor shows of cleverness in quite the same way; in fact, saying, “This code is clever,” is a respectful and diplomatic way of saying, “You blew it.” There is a well-known Easter egg in Python; normally one uses the import statement to let code access an existing module for a specific task, but if you start the Python interpreter interactively (in itself a powerful learning tool to try things out and learn some things quickly) and type import this, you get:

>>> import this
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

This little poem speaks against trying to be as clever as you can, and this is something deep in Python’s veins.

While simplicity is important in Python, Python is a multiparadigm language (like many others, including Ocaml and JavaScript as well as Perl) and directly supports procedural, object-oriented, and (in part) functional programming, letting the programmer choose what works best for a situation. On this point I may point out that object oriented programming is not a better way of solving problems than procedural programming; it is one that scales better for larger projects. I would choose object oriented methodology over procedural for large projects, and procedural over object oriented for small to intermediate sized projects, with some tiny projects not even needing procedural structure. (If I have enough cargo to fill the trailer on an eighteen wheel truck, then the most efficient use of resources is to pay for that way of transporting the payload, but if the cargo fits neatly inside an envelope, a postage stamp is enough.)

Let’s look at some of the core language features that are likely to come up.

Python is a scripting language, along with such languages as Perl, PHP, Ruby, Tcl, and shell scripting like bash. As opposed to C and C++ which are compiled to a standalone executable (or library, etc.), Python is interpreted from a script’s source file, or more precisely compiled to a bytecode. To simplify slightly, “the thing you run” is usually not a separate executable that is derived from the source code; “the thing you run” is effectively the source code. Now Python does have compiled bytecode, and it is possible to get an implementation of Python that runs on a Java VM or creates a standalone executable, but distributing a Python program or library usually means distributing the source code. Because in Python we are effectively “running the source code,” this usually means a faster feedback cycle than the edit-compile-test process one uses in working with a C application. For some Python software such as CherryPy, if you make a change in one of your source files, the application immediately reloads it without needing separately quit and restart, making the feedback cycle even shorter and more responsive.

The “significant whitespace” mentioned earlier means that a statement usually ends with a line break rather than a semicolon. You are allowed to add a semicolon at the end of a statement or use semicolons to separate more than one statement on a single line; hence both of the following are legal:

print u'Hello, world!';
print u'Ping!'; print u'Pong!'

However, the standard practice is to let line breaks end your statements:

print u'Hello, world!'

Note that this differs from JavaScript, where the final semicolon on a line is treated as optional but it is usually considered best practice to explicitly include the semicolon. In Python, it is uncommon to end a statement with a semicolon.

If you want to break a statement over multiple lines, usually because it would be a very long line otherwise, you can end a line with a backslash, and then continue after whitespace, which I suggest you indent to two spaces more than the beginning of the line:

print \
  u'Hello, world!'

There are some cases where the backslash is optional and discouraged: in particular, if you have open parentheses or square/curly braces, Python expects you to complete the statement with more lines:

stooges = [
  u'Larry',
  u'Moe',
  u'Curly',
  ]

opposites = {
  True: False,
  False: True,
  }

falsy = (
  False,
  0,
  0.0,
  '',
  u'',
  {},
  [],
  (),
  None,
  )

The three statements above represent three basic types: the list, the dictionary, also called the hash, dict, or occasionally associative array, and also the tuple. The list, denoted by square braces (“[]”) and tuple, which is often surrounded by parentheses (“()”) even though it is not strictly denoted by them unless a tuple is empty, both contain an ordered list of anything. The difference between them is that a tuple is immutable, meaning that the list of elements cannot be changed, and a list is mutable, meaning that it can be changed, and more specifically elements can be rearranged, added, and deleted, none of which can be done to a tuple. Lists and tuples are both indexed, with counting beginning at zero, so that the declaration of stooges above could have been replaced by creating an empty list and assigning members:

stooges = []
stooges[0] = u'Larry'
stooges[1] = u'Moe'
stooges[2] = u'Curly'

I will comment briefly that zero-based indices, while they are a common feature to most major languages, confuse newcomers: it takes a while for beginning programmers to gain the ingrained habit of “You don’t start counting at 1; you start counting at 0.”

The dictionary is a like a list, but instead of the index automatically being a whole number, the index can be anything that is immutable. Part of my first introduction to Perl was the statement, “You’re not really thinking Perl until you’re thinking associative arrays,” meaning what in Perl does the same job as Python’s dictionary, and lists and dictionaries in particular are powerful structures that can do a lot of useful work.

The example of a tuple provided above are some of the few values that evaluate to false. In code like:

if condition:
    run_function()
else:
    run_other_function()
while condition:
    run_function()

The if and while statements test if condition is true, and the variable condition can be anything a variable can hold. Not only boolean variables but numbers, strings, lists, dictionaries, tuples, and objects can be used as a condition. The rule is basically similar to Perl. A very small number of objects, meaning the boolean False, numeric variables that are zero, containers like lists and dictionaries that are empty, and a few objects that have a method like __nonzero__(), __bool__(), or __len__() defined a certain way, are treated as being falsy, meaning that an if statement will skip the if clause and execute the else clause if one is provided; and a while statement will stop running (or not run in the first place). Essentially everything else is treated as being truthy, meaning that an if statement will run the if clause and skip any else clause, and a while loop will run for one complete iteration and then check its condition again to see if it should continue or stop. (Note that there is a behavior that is shared with other programming languages but surprising to people learning to program: if the condition becomes false after some of the statements in the loop has run, the loop does not stop immediately; it continues until all of the statements in that iteration have run, and then the condition is checked to see if the loop should run for another iteration.) Additionally, if, else, while, and the like end with a colon and do not require parentheses. In C/C++/Java, one might write:

if (remaining > 0)

In Python, the equivalent code is:

if remaining > 0:

If-then-else chains in Python use the elif statement:

if first_condition:
    first_function()
elif second_condition:
    second_function()
elif third_condition:
    third_function()
else:
    default_function()

Any of the example indented statements could be replaced by several statements, indented to the same level; this is also the case with other constructs like while. In addition to if/else/elif and while, Python has a for loop. In C, the following idiom is used to do something to each element in array, with C++ and Java following a similar pattern:

sum = 0;
for(i = 0; i < LENGTH; ++i)
    {
    sum += numbers[i];
    }

In Python one still uses for, but manually counting through indices is not such an important idiom:

sum = 0
for number in numbers:
    sum += number

The for statement can also be used when the data in question isn’t something you handle by an integer index. For example:

phone_numbers = {
  u'Alice Jones': u'(800) 555-1212',
  u'Bob Smith': u'(888) 555-1212',
  }

In this case the dictionary is a telephone directory, mapping names to telephone numbers. The key “Alice Jones” can be used to look up the value “(800) 555-1212”, her formatted telephone number: if in the code you write, print phone_numbers[u’Alice Jones’], Python will do a lookup and print her number, “(800) 555-1212”. If you use for to go through a dictionary, Python will loop through the keys, which you can use to find the values and know which key goes with which value. To print out the phone list, you could write:

for name in phone_numbers:
    print name + u': ' + phone_numbers[name]

This will print out an easy-to-read directory:

Alice Jones: (800) 555-1212
Bob Smith: (888) 555-1212

Now let us look at strings. In the examples above, we have looked at Unicode strings, and this is for a reason. If you are in the U.S., you may have seen signs saying, “Se habla español,” Spanish for “We speak Spanish here,” or “Hablamos español,” Spanish for “We don’t speak Spanish very well.” The difference is something like the difference in Python between:

sum = 0
for number in numbers:
    sum += number

and:

sum = 0
index = 0
while index < len(numbers):
    sum += numbers[index]
    index += 1

Now if one is sticking large block letters on a sign in front of a store, it is acceptable to state, “SE HABLA ESPANOL”; it’s appropriate to use an “N” because you don’t have any “ñ”s, a bit like how it doesn’t bother people to use a “1” because you’ve run out of “I”s or an upside-down “W” because you’ve run out of “M”s. And to pick another language, Greeks often seem willing to write in Greek using the same alphabet as English; this is the equivalent of writing “Hi, how are you?” in English but written with Greek letters: “αι ου αρ ιυ:” it works pretty well once you get used to it, but it’s really nice to have your own alphabet.

There is one concern people may have: “So how many translations do I have to provide?” I would suggest this way of looking at it. The people in charge of major software projects often try to produce fully internationalized and localized versions of their software that appears native for dozens of languages, but even they can’t cover every single language: if you support several dozen languages, that may be full support for 1% of the languages that exist. Even the really big players can’t afford an “all-or-nothing” victory. But the good news is that we don’t need to take an “all-or-nothing” approach. Russians, for instance, are often content to use forum software that has an interface and a few other things in English, and most of the discussion material in Russian. Perhaps the best thing to offer is a fully translated and localized Russian version of the forum, but many Russians will really do quite well if there is a good interface in English, and if the forum displays Russian discussions without garbling the text or giving errors.

The most basic of the best practices for internationalization and localization is to choose Unicode over ASCII strings. ASCII lets you handle text in a way that works for American English; Unicode lets you handle text in a way that works for pretty much everybody. Working with Unicode strings is similar to working with ASCII strings, but once you use Unicode, you can store information people enter in other languages for free.

In Python code, an ASCII string looks like ‘foo’ or “foo”, and a Unicode string has a ‘u’ before the opening quote, like u’foo’ or u”foo”. Strings may be marked off by either double or single quotes, and a triple double quote or triple single quote can be used to mark a multiline string (which can contain double or single quotes anywhere except for possibly the last character):

print u'''Content-type: text/html

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
'''

The only gotchas are that you cannot include the same triple quotation mark delimiter, and if the last character of the string is the same kind of character, it needs to be escaped with a backslash, like: u”’This string ends with an apostrophe: \””.

Probably the next step to internationalization after using Unicode strings is, instead of storing the interface language in your code like:

print u'Please enter your email address below:'

you would instead do string look-ups that would pull the appropriate translation:

print translate(messages.PLEASE_ENTER_YOUR_EMAIL_ADDRESS_BELOW)

If you do this, the only language that needs to initially be supported is your own, perhaps tested by a second language, but then you don’t need to do major rewrites to support a second language, or a third, fourth, or twelfth. Maybe that wouldn’t be a perfect localization, but it’s another major step, and it’s not too hard.

Having looked at that, let’s look at another topic: exceptions and errors. Exceptions are thrown when something doesn’t work ideally, and usually you want to catch them. The basic idea is that plan A didn’t work and you should have a plan B.

For example, suppose that you have a string value that’s supposed to be an integer displayed as a string, like u’1′. Suppose further that you want to get the integer out of the string, but default to 0 if parsing fails (for instance, u’one’ will not be parsed as an integer). Then you can write:

try:
    result = int(input)
except ValueError:
    result = 0

This code says that plan A is to get an appropriate integer value out of the input, and plan B is to set a default of 0. This kind of thing is very appropriate in dealing with the web, where you should assume that input is inappropriate and possibly malicious until proven otherwise. If you write a web script that asks people to enter their age, and someone hits two keys at once and enters an age of u’22w’, you need to be able to roll with it-and this is nothing next to what might happen if someone is acting maliciously. In working on the web, there may be ideal input that you intend, but both from a usability and a security perspective you need to be able to respond appropriately to input that was not what you intended. If you only type:

result = int(input)

your whole program will break on even an innocent typo like entering u’22w’ when asked for their age.

Exceptions are important in Python. In Java and some other languages, recommended best practices say, “Exceptions should not be used for regular flow control.” In other words, an exception is only appropriate for a very rare case when something very unusual has happened. That is not how Python works, and exceptions are a commonly used way of saying “the ideal case didn’t happen.” Perhaps you have seen the famous “Mom’s Brownie Recipe” on the web:

    • Remove teddy bear from oven and preheat oven to 375.
    • Melt 1-cup margarine in saucepan.
    • Remove teddy bear from oven and tell JR. “no, no.”
    • Add margarine to 2 cups sugar.
    • Take shortening can away from JR. and clean cupboards.
    • Measure 1/3-cup cocoa.
    • Take shortening can away from JR. again and bathe cat.
    • Apply antiseptic and bandages to scratches sustained while removing shortening from cat’s tail.
    • Assemble 4 eggs, 2-tsp. vanilla, and 1-1/2 cups sifted flour.

Take smoldering teddy bear from oven and open all doors and windows for ventilation.

  • Take telephone away from Billy and assure party on the line the call was a mistake.
  • Call operator and attempt to have direct dialed call removed from bill.
  • Measure 1-tsp. salt & a cup nuts and beat all ingredients well.
  • Let cat out of refrigerator.
  • Pour mixture into well-greased 9×13-inch pan.
  • Bake 25 minutes.
  • Rescue cat and take razor away from Billy.
  • Explain to kids that you have no idea if shaved cats will sunburn.
  • Throw cat outside while there’s still time and he’s still able to run away.
  • Mix the following in saucepan: 1 cup sugar, 1 oz unsweetened chocolate, 1 cup margarine.
  • Take the teddy bear out of the broiler and throw it away—far away.
  • Answer the door and meekly explain to nice police officer that you didn’t know JR. had slipped out of the house and was heading for the street.
  • Put JR. in playpen.
  • Add 1/3-cup milk, dash of salt, and boil, stirring constantly for 2 minutes.
  • Answer the door and apologize to neighbor for Billy having stuck a garden hose in man’s front door mail slot. Promise to pay for ruined carpet.
  • Tie Billy to clothesline.
  • Remove burned brownies from oven.
  • Start on dinner!

Because people are intelligent, you can write a recipe book and describe only the ideal case. When you’re programming, you need to be able to say, “This is plan A; this is plan B if plan A doesn’t work; this is plan C if plan B doesn’t work.” You can’t just say, “Gather these ingredients, mix, and bake;” you need all the except clauses like, “Remove teddy bear from oven…”

In addition to try and except, there is a finally clause which follows the try clause and any except clauses, and is to be executed whether or not an exception was caught. It can appear:

try:
    output_message(warning)
finally:
    log_message(warning)

or:

try:
    result = items[0]
except IndexError:
    result = 0
finally:
    return result

One note to be given: it can be appropriate to put pass in an except clause, so we have:

total = 0
for input in inputs:
    try:
        total += int(input)
    except ValueError:
        pass

If you are making a running sum, it may be appropriate to ignore a specific error like this. But it is begging trouble to do:

try:
    first_method()
    second_method()
    third_method()
except:
    pass

This use of except: is a bit like the goto statement; it offers convenience at the beginning and can bring headaches down the road. What it says is, “Try to run these three methods; if anything goes wrong, just ignore it and move on.” And this is a recipe to bake JR’s teddy bear at 375 and then be left wondering why the house is so full of foul-smelling smoke: proper exception handling removes the teddy bear from the oven, repeatedly if need be, instead of just boldly ignoring problems that need to be addressed properly.

This can mean that, even if we expect we will mainly just write code for the ideal case, we may have to write a significant amount of code for non-ideal cases.

How do you create functions, procedures, and methods in Python? The function/procedure distinction that exists in C, where a function returns a value and a procedure does not, is not as prominent and Python programmers do not usually speak of “procedures.” If a function completes without returning a value, or returns without specifying a value, it returns the special value None, which is like an SQL NULL value. (Or a function can explicitly return None). The following three functions are equivalent; they take no arguments and return None:

def first():
    pass
def second():
    return
def third():
    return None

A function’s required arguments are named; their type is not specified.

def ternary(condition, first_option, second_option):
    if condition:
        return first_option
    else:
        return second_option

I might note that in Python, the common ternary operator that appears in C/C++/Java like a > b ? a : b, is not a built-in structure in Python. There are some somewhat hackish ways Pythonistas use to fake it, notably a > b and a or b, but besides reading somewhat strangely, they run into problems a bit like C macros, where the C macro MAX(a, b) defined to a > b ? a : b will double-increment the selected argument if invoked as MAX(++c, ++d). In Python, a ternary operator like a > b and a or b can malfunction if its middle argument is falsy; it is more robust to write (a > b and [a] or [b])[0], at a significant cost to Pythonic ease in reading and understanding.

Returning to functions, it is possible to specify default values, as in:

def parse(input, default = 0):
    try:
        return int(input)
    except ValueError:
        return default

This code somewhat flexibly parses string/unicode input for an integer value, returning a default if it cannot be parsed. If invoked like parse(text), it will default to 0 in the case of a parse failure; if invoked like parse(text, 1), it will default to another value, such as 1, and if invoked like parse(text, None), the result can be examined for a parse failure: it will hold an integer if parsing was successful and the (non-integer) value None in the case of failure.

If a function has two or more arguments with default values, unnamed arguments are specified from left to right. Hence a function of:

def name_pets(dog = None, cat = None, bunny = None):
    result = []
    if dog:
        result.append(u'I have a dog named ' + dog + u'.')
    if cat:
        result.append(u'I have a cat named ' + cat + u'.')
    if bunny:
        result.append(u'I have a bunny named ' + bunny + u'.')
    return u'\n'.join(result)

Now there are a couple of things going on. name_pets(u’Goldie’) will return, u’I have a dog named Goldie.’ That is, the first argument will be assigned to dog, and name_pets(u’Jazz’, u’Zappy’) will correspondingly name the dog “Jazz” and the cat “Zappy.” But what if you want to name a cat but not a dog? Then you can explicitly name the argument: name_pets(cat=u’Guybrush’) will specify the value of the cat argument while leaving dog and bunny to have their default values.

That is one thing going on; there is something else going on with strings. If you have more than one pet, this method will place a line break between each sentence. It is common practice to build up a long string by creating an initially empty list, and then bit by bit build up the contents of the string in the list. Usually you can just stick them all together by u”.join(buffer), but if you choose another string, like u’\n’ here, then that other string is the glue that joins the pieces, and you get a line break between each sentence here.

You can specify an open-ended number of arguments, with a single asterisk before the last argument name, like:

def teach(teacher, course_name = None, *students):
    result = []
    result.append(u'This class is being taught by ' + teacher + u'.')
    if course_name != None:
        result.append(u'The name of the course is "' + course_name + u'."')
    for student in students:
        result.append(student + u' is a student in this course.')
    return u'\n'.join(result)

If invoked just as teach(u’Prof. Jones’), the result will be one line: u’This class is being taught by Prof. Jones.’. But if invoked as print teach(u’Prof. Jones’, u’Archaeology 101′, u’Alice’, u’Bob’, u’Charlie’), the output will be:

This class is being taught by Prof. Jones.
The name of the course is "Archaeology 101."
Alice is a student in this course.
Bob is a student in this course.
Charlie is a student in this course.

The last way arguments can be specified is by keyword arguments, where any arguments given by keyword that have not been otherwise claimed in the argument list are passed into a dictionary. So if we define a function:

def listing(**keywords):
    for key in keywords:
        print key + u': ' + keywords[key]

If we then call listing(name=’Alice’, phone='(800) 555-1212′, email=’alice@example.com’), it should print out something like:

phone: (800) 555-1212
name: Alice
email: alice@example.com

As an aside, note that the arguments appear in a different order than they were given. Unlike a normal list where you should be able to get things in a fixed order, elements in a dictionary should not be expected to be in any particular order: nothing in the dictionary’s job description says that it should give back first the name, then the phone number, then the email. You are welcome to sort the keys where appropriate if you want them in alphabetical order:

def alphabetical_listing(**keywords):
    keys = keywords.keys()
    keys.sort()
    for key in keys:
        print key + u': ' + keywords[key]

If you then call alphabetical_listing(name=’Alice’, phone='(800) 555-1212′, email=’alice@example.com’), you should then get the keys in fixed alphabetical order:

email: alice@example.com
name: Alice
phone: (800) 555-1212

You can have any combination, or none, of these ways of accepting an argument. If you use all of them, it should be like:

def example(required, default = u'default value', *arguments, **keywords):

Before leaving the topic of functions, I would like to mention that there are a couple of ways in which you can speak of a function returning more than one value, both of which are useful, and both of which are supported in Python. One way, which happens to be implemented by a tuple, is useful if you want to return (for instance) both a status code and a text description of the status. Let’s return to the task of parsing integers. We can write:

def parse(input, default = 0):
    try:
        return int(input), 1, u'Parsed successfully.'
    except ValueError:
        return default, 0, u'Parsing failed.'

There are a couple of ways these multiple results could be unpacked; one is:

value, status, explanation = parse(input)

But there is another sense in which you may want a generator that can keep on returning values. There is a classic story in mathematics in which one famous mathematician, as a boy, was in class and the teacher wanted some time and so decided to give the students a time-consuming task to keep them busy. And so the teacher told the students to add up the numbers from 1 to 100. And the future mathematician tried to figure out how to do things the smart way, realizing that if you add 1 and 100 you get 101; if you add 2 and 99 you also get 101, if you add 3 and 98 you get the exact same thing. If you pair the numbers like that, you have 50 pairs that have the same sum, 101, and so the grand total has to be 50 * 101 = 5050. And this is the number he gave the teacher. (The teacher, seeing that he had the correct answer so quickly, assumed that the boy must have cheated and gave him a spanking as his just reward.)

Based on this realization, there is a simple mathematical formula to calculate the sum of the first n positive integers: the sum is equal to n * (n + 1) / 2. But let us suppose we did not know that, and we wished to manually check what the result was. It turns out that there is a better and a worse way to calculate the sum of the numbers from 1 to 10,000,000,000. The bad way is:

sum = 0
for number in range(1, 10000000001):
    sum += number

And the good way is:

sum = 0
for number in xrange(1, 10000000001):
    sum += number

What’s the difference? The only surface difference is the letter ‘x’. But there is a major difference. It’s not primarily about speed; both are painfully slow, especially if you compare them to calculating 10000000000 * (10000000000 + 1) / 2, which is lightning fast. But the first one, the one with range(), creates a list with a staggering ten billion integers; a workstation with eight gigs of RAM doesn’t have nearly enough memory to hold the list, and if you try to run it, you may well observe your computer slow to a crawl as more and more memory is used just to create that one array. But the one with xrange() uses very little memory because it is a generator that produces the numbers as needed but never creates an enormous list. Something like xrange() can be implemented for our purposes as:

def xrange(first_number, second_number = None):
    if second_number == None:
        bottom = 0
        top = first_number
    else:
        bottom = first_number
        top = second_number
    current = bottom
    while current < top:
        yield current
        current += 1

The yield statement is like a return statement, except that the function yielding a value keeps on going. What xrange(1, 10000000001) does is keep on yielding the next counting number until it reaches its limit and it has nothing more to yield, but it doesn’t use very much memory itself, and using it like for number in xrange(1, 101) also doesn’t take that much memory. Using xrange() to calculate a very large sum may be very slow, but it won’t make everything else running on your whole computer grind to a halt by exhausting all available memory, and then crash without giving you a result.

There is one point we would like to stop on: depending on some prior language, some experienced programmers may be thinking, “Wait, did you try this? Isn’t that going to overflow?” And in fact it does give the correct result if we do it in Python:

>>> print 10000000000 * (10000000000 + 1) / 2
50000000005000000000

This result is correct, but C programmers, as well as C++ and Java programmers, may have a conditioned reflex: in C, for instance, just as a string buffer is an array of characters with a fixed length, integer types have a maximum and minimum possible value, and you may be able to choose an integer type with a bigger range, but there is always an arbitrary line, and if you cross it you get an overflow error that causes incorrect results. If we write in C:

#include <stdio.h>

int main()
    {
    long top;
    scanf("%ld", &top);
    printf("%ld\n", top * (top + 1) / 2);
    return 0;
    }

The code correctly gives 5050 if we give it a value of 100, just like Python, but if we give the original ten billion, we get, incorrectly:

3883139820726120960

Python turns out to have just as much an arbitrarily threshold as C, but the difference is that if you trigger an overflow, instead of continuing on with garbage results, Python quietly substitutes a type that will give correct results for any number that will fit in memory. So, if you ask for the number that Google is named after, ten multiplied by itself a hundred times, Python will handle the request correctly:

<<< print 10 ** 100
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

You can ask Python to handle integers millions of digits long, and while it may run more slowly, Python will happily continue to give correct results as long as it can fit your numbers in memory.

This, as with strings and lists, is an example of how Python follows the zero-one-infinity rule: to quote the jargon file:

“Allow none of foo, one of foo, or any number of foo.” A rule of thumb for software design, which instructs one to not place random limits on the number of instances of a given entity (such as: windows in a window system, letters in an OS’s filenames, etc.). Specifically, one should either disallow the entity entirely, allow exactly one instance (an “exception”), or allow as many as the user wants – address space and memory permitting.

The logic behind this rule is that there are often situations where it makes clear sense to allow one of something instead of none. However, if one decides to go further and allow N (for N > 1), then why not N+1? And if N+1, then why not N+2, and so on? Once above 1, there’s no excuse not to allow any N; hence, infinity.

Many hackers recall in this connection Isaac Asimov’s SF novel The Gods Themselves in which a character announces that the number 2 is impossible – if you’re going to believe in more than one universe, you might as well believe in an infinite number of them.

Here Python observes a principle that you should observe in what you pass on to your users. In terms of user interface design, for the iPhone to allow exactly one application at a time and for the Droid to allow multiple applications are both sensible approaches: perhaps the Droid marketing campaign insists that we need to run multiple apps, but for a long time the iPhone, designed to run one app at a time, was an uncontested darling. But what was not a correct decision was for the iPhone web browser to be able to have up to eight windows open, but not nine or more. If you are going to make a web interface that allows the user to upload files, you don’t want to say, “I don’t know exactly how many the user will want, so I’m deciding five is probably enough;” you start with one file upload input and add a button that creates another file upload input, and lets the user keep adding as many files as are wanted. Or, depending on context, you may create an interface that allows the user to upload at most one file as an avatar, or you may write an opinion survey in which uploading files does not make sense as part of the design. Zero, one, and infinity each have their places.

Python does not require you to do object-oriented programming, but in Python everything is an object. Functions are first-class objects and can be treated as such. Unlike Java, the humble integer is an object. dir() is a function that lists all of the methods of an object: if at the interpreter you call dir() on the integer 1, you get:

>>> dir(1)
['__abs__', '__add__', '__and__', '__class__', '__cmp__', '__coerce__',
'__delattr__', '__div__', '__divmod__', '__doc__', '__float__', '__floordiv__',
'__format__', '__getattribute__', '__getnewargs__', '__hash__', '__hex__',
'__index__', '__init__', '__int__', '__invert__', '__long__', '__lshift__',
'__mod__', '__mul__', '__neg__', '__new__', '__nonzero__', '__oct__', '__or__',
'__pos__', '__pow__', '__radd__', '__rand__', '__rdiv__', '__rdivmod__',
'__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__',
'__rmod__', '__rmul__', '__ror__', '__rpow__', '__rrshift__', '__rshift__',
'__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__',
'__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__',
'conjugate', 'denominator', 'imag', 'numerator', 'real']

Methods with names like __add__() are methods you can create or override for operator overloading; without attempting to explain all of these methods, I will briefly observe that not only is an integer like 1 an object, it is an object that supports quite a number of methods.

Python’s objects are in some ways like Java and in some ways like JavaScript: Python objects come from full-fledged classes like Java, but are more dynamic: fields and methods can be deleted from a Python object on the fly, like JavaScript, even though inheritance is classical and not prototypal. The typing is so-called “duck typing”: if it walks like a duck and it quacks like a duck, it’s a duck, and we have already seen one instance of duck typing at work: if an integer computation overflows, Python deftly substitutes another class that walks like the basic integer class and quacks like the basic integer class, but can handle millions of digits or more as long as you have enough memory and processor time. In Java, it is usually preferred practice to choose object composition over multiple inheritance; in Python, it is usually preferred practice to choose multiple inheritance over object composition.

The simplest example of a class is:

class simple:
    pass

An instance of this class can be created as:

instance = simple()

A somewhat more ornate example would be:

class counter(object):
    def __init__(self):
        self.value = 0
    def increment(self):
        self.value += 1
    def reset(self):
        self.value = 0

This is a working, if not necessarily advisable, counter class. The first argument to each of its methods is self (N.B. self, rather than this), and the class has one instance variable, defined in the __init__() method called in initialization, although it could just as well have many or none. What if we wanted to make the member field private? The short answer is, we can’t, and we don’t really want to. We could legitimately follow a convention that a member with a leading underscore in its name, _like_this instead of like_this, is a part of the present private implementation, does not represent in any sense the public API, and is subject to change or removal at any time. Rewritten that way, our class would look like this:

class counter(object):
    def __init__(self):
        self._value = 0
    def get_value(self):
        return self._value
    def increment(self):
        self._value += 1
    def reset(self):
        self._value = 0

But this way of solving things makes more sense in Java than Python; in Java it is recommended practice to make most or all instance variables private and then define corresponding getters and setters, and perhaps build a counter class that let you guarantee it could only be incremented, read, and optionally reset. It’s not just that the solution we have built works a bit more like Java than Python, but the problem we were addressing in the first place works more like Java than Python. Truer to the spirit of Python would be to use an integer and avoid the work of creating a class, let alone accessor methods.

A more Pythonic example might be a simple way to list tags in a webpage. It’s longer than our counter class, but not all that much longer:

#!/usr/bin/python

import re
import urllib2

class webpage(object):
    def __init__(self, url = None):
        self.initialized = False
        if url:
            self.load_url(url)

    def __nonzero__(self):
        return self.initialized

    def list_tags(self):
        if self.initialized:
            result = []
            for tag in re.findall(ur'<(\w+)', self.text, re.DOTALL):
                if tag.lower() not in result:
                    result.append(tag.lower())
            result.sort()
            return result
        else:
            raise Exception(u'No webpage is loaded.')

    def load_url(self, url):
        try:
            text = urllib2.urlopen(url).read()
            self.url = url
            self.text = text
            self.initialized = True
            return True
        except URLError:
            return False

if __name__ == u'__main__':
    page = webpage(u'http://CJSHayward.com/')
    if page:
        print page.list_tags()
    else:
        print u'The page could not be loaded.'

A few remarks about the very top: the top line, “#!/usr/bin/python”, tells Unix, Linux, and OS X systems that this is to be run as a Python program; if you intend at all to distribute your scripts, you should put this at the top. (It won’t do anything bad on a Windows system.)

At the beginning a couple of modules from the standard library are imported. urllib2 can fetch web and other URL’s, and re provides regular expressions.

This class can be initialized or uninitialized; if you ask for an analysis when it is not initialized, it raises an exception. Note that it considers itself fully initialized and set up, not necessarily when its __init__() method has been called, but when it has loaded a URL successfully.

There are a couple of conditions where a webpage object might not be initialized once the __init__() constructor has returned. The URL is an optional parameter, so it might not have passed through initialization. Or any of a number of transient or permanent network errors could have prevented the URL from loading successfully. The code to load a URL has:

def load_url(self, url):
        try:
            text = urllib2.urlopen(url).read()
            self.url = url
            self.text = text
            self.initialized = True
            return True
        except URLError:
            return False

Note the first real line of the method, text = urllib2.urlopen(url).read(). This will do one of two things: either load the URL’s contents successfully, or throw a URLError. If it throws an error, none of the next three lines is called. This means that an instance of this class is only fully set up with URL etc. stored after a successful read, and if you have an initialized class and try to load another URL and fail, previous data is not clobbered. This is something that can fail, but it is transactional, like a database transaction. Either all of the data is updated or none of it is updated, and in particular the object won’t be left in an inconsistent state.

It uses Perl-style regular expressions, which are powerful and popular but can be a bit cryptic. The one regular expression used is ur'<(\w+)’, with an ‘r’ after the initial ‘u’ to specify a raw string without Python doing things with backslashes that we don’t want when we’re doing regular expressions. What the core of the regular expression says in essence is, “a less than sign, followed by one or more word characters, and save the one or more word characters.” This will find more or less the HTML tags in a webpage.

And the last thing I will say, besides saying that you can use this class by giving,

page = webpage("http://CJSHayward.com/")
print page.list_tags()

is that its present functionality is a foot in the door compared to the analysis that is possible. Right now the webpage class can load a webpage and do one thing with it, list the tags. From that starting point, it is not hard to copy and adapt list_tags() to make another method that will count the tags:

def count_tags(self):
        if self.initialized:
            result = {}
            for tag in re.findall(ur'<(\w+)', self.text, re.DOTALL):
                if tag.lower() in result:
                    result[tag.lower()] += 1
                else:
                    result[tag.lower()] = 1
            return result
        else:
            raise Exception(u'No webpage is loaded.')

There are any number of ways this class could be extended; listing and even counting the tags in a page are something like a “Hello, world!” program: they show the very beginning of the possibilities, not where they end.

Lastly, the portion of the file at the end, beginning with if __name__ == u’__main__’:, is part of a Python pattern of writing for reusability. The basic idea is that you write portions of a program you might want to reuse, such as objects and classes, in the main body of a program, and then material you want to run if you run the script directly, but not if you import it, beneath. If the script above is run directly, it will try to create a webpage and list its tags; but it can also be imported as a module, by something like:

import webpage_inspector

if the file is named webpage_inspector.py. If it is imported as a module, any classes and functions will be available, as webpage_inspector.webpage for instance, but the demo code at the bottom will be skipped.

(If you are interested in parsing webpages, I might suggest that you look at existing tools for Python, such as Beautiful Soup at http://www.crummy.com/software/BeautifulSoup/, that put even more power at your fingertips.)

Finally, this class takes advantage of one of the special methods, in this case __nonzero__(). What that means is that, while works well enough to write:

page = webpage(u'http://CJSHayward.com/')
if page.initialized:
    print page.count_tags()

you could also write:

page = webpage(u’http://CJSHayward.com/‘) if page: print page.count_tags()That is, you can treat a webpage instance like a boolean variable; if you wanted to keep trying to load a page when your network is flaky, you could try:

import time
page = webpage(u'http://CJSHayward.com/')
while not page:
    time.sleep(30)
    page.load_url(u'http://CJSHayward.com/')

Or, using another feature of the method, you could more concisely write:

import time
page = webpage()
while not page.load_url(u'http://CJSHayward.com/'):
    time.sleep(30)

This will keep on trying to load the page, and if necessary keep on trying, waiting 30 seconds between attempts so as not to engage in busy waiting. Busy waiting on a resource (network, filesystem, etc.) is the practice of trying to access a resource without interruption, which can be a way to be a very bad neighbor who drains resources heavily compared to someone who delays. Note that this will keep on trying forever if the error is permanent, such as a nonexistent domain.)

Python partially supports functional programming; here I will attempt, not to explain functional programming to the interested newcomer, but to orient the functional programmer who would like to know what features of functional programming Python supports. I have mentioned one feature of functional programming, (lazy) generators. Python also supports list comprehensions: if you have numbers, a list of integers and/or floating point numbers and want only the positive values, you can do:

positives = [x for x in numbers where x > 0]

lambdas, anonymous functions close to the lambdas of functional programming, are commonly used with filter, map, and reduce:

>>> numbers = [1, 2, 3]
>>> filter(lambda x: x > 1, numbers)
[2, 3]
>>> map(lambda x: x * 2, numbers)
[2, 4, 6]
>>> reduce(lambda x, y: x + y, numbers)
6

Python’s support of functional programming has not always been the best, and functional programmers may be dismayed to learn that Guido was hoping at one point to remove lambda altogether. This may be unfortunate, but to the reader interested in functional programming in Python, I may suggest downloading, reading, and using the Xoltar Toolkit. The Xoltar toolkit provides a module, functional, which is written in pure Python, is largely self-documenting code, and provides tools and/or reference implementations for currying and other favorites.

Now I will be discussing “usability for programmers.” Normally people who discuss usability discuss making a system usable for nontechnical end users, but there is such a thing as usability for programmers; a good chunk of Python’s attraction is that it shows meticulous attention to detail in the usability it provides to programmers.

There are a couple of ways in Python programming that we can provide good usability for other programmers. One is, in choosing names (for variables, methods, objects, classes, and so on), use whole_words_with_underscores, not camelCase. Emacs is perfectly willing to insert spaces in displayed camelCase words, but this is a compensation for camelCase’s weakness, and not everyone uses Emacs: or either of vim or Emacs, for that matter: GUI editors are not going to go away, even if our beloved command line editors might go away. The best thing of all would be to just use spaces in variable names, but so far the language designers have not supported that route. For a consolation prize, underscores are a little bit better than camelCase for native English speakers and significantly better than camelCase for programmers struggling with English’s alphabet. (At a glance, aFewWordsInCamelCase look a bit more like a block of undifferentiated text than a_few_words_separated_by_underscores if you live and breathe English’s alphabet, but if you have worked hard on English but its alphabet is still not your own, aFewWordsInCamelCase looks absolutely like a block of undifferentiated text next to a_few_words_separated_by_underscores. Remember reading “Hi, how are you?” written in Greek letters as “αι &oicron;υ αρ ιυ:” sometimes just using another language’s alphabet is a challenge.

Python has comments, but I would like to make a point. In Python, comments are not there to make code understandable. Python has been called “executable pseudocode,” and is your code’s job to be understandable itself. Comments have a place, but if you need to add comments to make your code understandable, that’s a sign you need to rewrite your code.

A Python comment, like Perl and Tcl (and one option in PHP), begins with a hash mark and continues to the end of the line. Adding a comment to one of the more cryptic lines of the example we have:

for tag in re.findall(ur'<(\w+)', self.text, re.DOTALL): # For each HTML opening tag:

Classes and functions have what are called “docstrings,” basically a short summary that is programmatically accessible, written as a (usually) triple quoted string immediately after the class/function definition:

class empty:
    u'''This class does nothing.'''
    def __init__(self):
        u'''This initializer does nothing.'''
        pass

In terms of indentation, you should always indent by four spaces. Emacs handles this gracefully; vim’s autoindent by default will substitute a tab for eight spaces where it can, leaving code that looks right in your editor but breaks when you run it in Python. If you use vim for Python, you should edit your ~/.vimrc, creating it if need be, and include the following:

set autoindent smartindent tabstop=4 shiftwidth=4 expandtab shiftround

Now we will look at a basic issue of problem solving, the Python way. Usually “encryption” refers to strong encryption, which refers to serious attempts to protect data; when you shop at a responsible merchant and your credit card information is transferred at a URI that begins with “https,” that’s strong encryption in use. There is also something called weak encryption, which includes such things as codes written as puzzles for children to break. If strong encryption is meant to resist prying, weak encryption is at times intended to be pried open. One classic use of weak encryption is rot-13, which moves each letter forward or back by thirteen places and has the convenient feature that running rot-13 again on encrypted text decrypts it. Historically, on UseNet, some offensive material was posted in rot-13 as a matter of common courtesy, so that people were warned and did not need to unintentionally read things that would offend them, and many old newsreaders included a single keystroke command to decrypt rot-13 text. For an example, if you rot-13 “The quick brown dog jumps over the lazy red fox.”, you get, “Gur dhvpx oebja qbt whzcf bire gur ynml erq sbk.”, and if you rot-13 “Gur dhvpx oebja qbt whzcf bire gur ynml erq sbk.”, you get the original “The quick brown dog jumps over the lazy red fox.”, restored perfectly.

Now suppose we want to be able to rot-13 encrypt text from Python. Rot-13 represents an extremely simple algorithm, and for the most part there is a perfectly obvious way to do it:

def rot13(text):
    result = []
    for character in unicode(text): 
        if character == u'a':
            result.append(u'n')
        elif character == u'b':
            result.append(u'o')
        elif character == u'c':
            result.append(u'p')
        elif character == u'd':
            result.append(u'q')
        elif character == u'e':
            result.append(u'r')
        elif character == u'f':
            result.append(u's')
        elif character == u'g':
            result.append(u't')
        elif character == u'h':
            result.append(u'u')
        elif character == u'i':
            result.append(u'v')
        elif character == u'j':
            result.append(u'w')
        elif character == u'k':
            result.append(u'x')
        elif character == u'l':
            result.append(u'y')
        elif character == u'm':
            result.append(u'z')
        elif character == u'n':
            result.append(u'a')
        elif character == u'o':
            result.append(u'b')
        elif character == u'p':
            result.append(u'c')
        elif character == u'q':
            result.append(u'd')
        elif character == u'r':
            result.append(u'e')
        elif character == u's':
            result.append(u'f')
        elif character == u't':
            result.append(u'g')
        elif character == u'u':
            result.append(u'h')
        elif character == u'v':
            result.append(u'i')
        elif character == u'w':
            result.append(u'j')
        elif character == u'x':
            result.append(u'k')
        elif character == u'y':
            result.append(u'l')
        elif character == u'z':
            result.append(u'm')
        elif character == u'A':
            result.append(u'N')
        elif character == u'B':
            result.append(u'O')
        elif character == u'C':
            result.append(u'P')
        elif character == u'D':
            result.append(u'Q')
        elif character == u'E':
            result.append(u'R')
        elif character == u'F':
            result.append(u'S')
        elif character == u'G':
            result.append(u'T')
        elif character == u'H':
            result.append(u'U')
        elif character == u'I':
            result.append(u'V')
        elif character == u'J':
            result.append(u'W')
        elif character == u'K':
            result.append(u'X')
        elif character == u'L':
            result.append(u'Y')
        elif character == u'M':
            result.append(u'Z')
        elif character == u'N':
            result.append(u'A')
        elif character == u'O':
            result.append(u'B')
        elif character == u'P':
            result.append(u'C')
        elif character == u'Q':
            result.append(u'D')
        elif character == u'R':
            result.append(u'E')
        elif character == u'S':
            result.append(u'F')
        elif character == u'T':
            result.append(u'G')
        elif character == u'U':
            result.append(u'H')
        elif character == u'V':
            result.append(u'I')
        elif character == u'W':
            result.append(u'J')
        elif character == u'X':
            result.append(u'K')
        elif character == u'Y':
            result.append(u'L')
        elif character == u'Z':
            result.append(u'M')
    return u''.join(result)

This is a perfectly effectively way of solving the problem, but you may wince at the thought of all that typing, and that is a good sign that this solution is not very Pythonic. Some readers may perhaps be disappointed with me (or, perhaps, not disappointed with me in the slightest) to learn that I cheated: I wrote three lines of code so Python would generate for me the long and tedious part of the routine so I could get out of such a chore, and then pasted the output into the page. We need a better solution in this.

One of the paradoxes in the programming world is that solving a problem in a more general sense may actually be less work. What we basically need is to do some translations of characters, so how can we do that? Remembering that Python’s switch statement is the dictionary, we could try:

def translate(text, translation):
    result = []
    for character in unicode(text):
        if character in translation:
            result.append(translation[character])
        else:
            result.append(character)
    return u''.join(result)

This is a big improvement: cleaner, simpler, much shorter, and much more powerful. So if we are dealing with strings used to store genetic data, we can also get the complement of a string. So to get the complement of u’ATTAGCGACT’, we can do:

original = u'ATTAGCGACT'
complement = translate(original, {u'A': u'T', u'T': u'A', u'C': u'G', u'G': u'C'})

And we’ve improved things, or at least it seems we’ve improved until we get around to the chore of typing out the dictionary contents for every uppercase and lowercase letter. We could write another Python snippet to autogenerate that, as the chore is not only tedious but an invitation to error, but is there a better way?

In fact there is. We can import the string library and take advantage of something that is already there, and here is a solution that is not daunting to type out, only slightly tedious, although here we must use a little ASCII:

import string
translation = string.maketrans(u'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', u'NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm')
translated = 'The quick brown dog jumps over the lazy red fox.'.translate(translation)

And with that, instead of solving the problem of translation ourselves, we have the problem already solved for us, for the most part. The variable translated is now u’Gur dhvpx oebja qbt whzcf bire gur ynml erq sbk.’

Those versed in Python’s character, though, might possibly not stop here. You can make up your own forms of weak encryption, but rot-13 encoding is not the world’s most obscure thing to do. Is this really the easiest and most Pythonic way to rot-13 a string? Let us fire up our Python interpreter:

>>> print u'The quick brown dog jumps over the lazy red fox.'.encode(u'rot13')
Gur dhvpx oebja qbt whzcf bire gur ynml erq sbk.

The problem is already solved for us.

A famous blog post called Python Is Not Java addresses Java programmers rather bluntly on why doing everything you’d do in Java is not getting the most out of Python:

Essentially, if you’ve been using Java for a while and are new to Python, do not trust your instincts. Your instincts are tuned to Java, not Python. Take a step back, and above all, stop writing so much code.

To do this, become more demanding of Python. Pretend that Python is a magic wand that will miraculously do whatever you want without you needing to lifting a finger. Ask, “how does Python already solve my problem?” and “What Python language feature most resembles my problem?” You will be absolutely astonished at how often it happens that thing you need is already there in some form. In fact, this phenomenon is so common, even among experienced Python programmers, that the Python community has a name for it. We call it “Guido’s time machine”, because sometimes it seems as though that’s the only way he could’ve known what we needed, before we knew it ourselves.

Python’s core library is documented extensively, searchably, and well at http://docs.python.org/library/ (be advised that python.com, besides being easy to type when you really mean python.org, is a famous porn site), and Python’s core library is your best friend. The code samples peppering this chapter are intended to simply illustrate basic features of the language; once you get up to speed, it’s not so much that you’ll have better ways of doing what that code does, as that you’ll have better ways of avoiding doing that, using Python more like a magic wand. I will not be attempting to provide select highlights from the core library because that would easily be a book in its own right. But we are saying that the Python core library is among a good Python programmer’s most heavily used bookmarks.

I advocate, when possible, moving from unadorned, “bare metal” Python to what might be called “Python++.” Let me explain what I mean by this and why it is more Pythonic.

The move from C to C++ is a move made by extending the core language to directly support objects, templates, and other features. There have been some efforts to extend the Python core language: easy_extend is intended to make it Pythonically easy to tinker with and extend the language syntax. However, I have never heard of production use of these extensions Pythonically saving time and effort while making programmers more productive.

What I have heard consistently is that using a good library really does qualify as a move from “unadorned Python” to “Python++”. A StackOverflow user asked, “Have you considered using Django and found good reasons not to?” And people listed legitimate flaws with Django and legitimate reasons they use other alternatives, but one developer got over thirty upvotes with a response of, “Yeah, I am an honest guy, and the client wanted to charge by the hour. There was no way Django was going to allow me to make enough money.” For the web, frameworks like Django, TurboGears, and web2py offer significantly greater power with less work in more truly Pythonic fashion. Python’s standard library does come with its cgi module, and it is possible to write webapps with it, but using the cgi module and the standard library to implement a social networking site with all the common bells and whistles would take months or years. With Python + Django + Pinax the time is more like hours. If you use Python, you don’t have to reinvent the wheel. If you want a social network and you use Django and Pinax, you don’t have to reinvent the internal combustion engine either, or power steering, or antilock brakes, because they are all included in standard packages for a car or truck. If your goal is an online store instead of a social network Pinax will not likely be of much help, but Django + Satchmo will. Both of them provide ready-made solution to routine tasks, whether user avatars with gravatar support, or a shopping cart with that works with any of several payment gateways.

This is true if you are developing for the web; if you are in another domain, similar remarks could be made for NumPy or SciPy.

I do not wish to discourage anyone from using different frameworks than I have mentioned, or suggest that there is something wrong with thinking things out and choosing TurboGears over Django. Web2py in particular cuts out one very daunting hurdle to new programmers: a command line with a steep learning curve. However, I do advocate the use of a serious, noteworthy “Python++” framework and not the standard library alone: the cgi module works entirely as advertised, but the difference between Python + Django + Pinax and just Python with the cgi module is comparable to the difference between Python with the cgi module and programming on bare metal in C.

I may further comment that fundamental usability is the same whether the implementation is Django, TurboGears, web2py, or for that matter Python with the cgi module or C working with bare metal. It would not be a surprise if Ruby on Rails or PHP developers were to look through this and find it speaks to how they can create a better user interface.

Summary

What is it that is attractive about Python?

Perl has been rightly called “Unix’s Swiss Army Chainsaw,” and perhaps nothing else so well concisely describes what it is that Perl has to offer. Java might be compared to the equipment owned by a construction company, equipment that allows large organizations and a well-organized army to erect something monumental. C would be a scientific scalpel, molecular sharp: the most exacting precision you can get unless you go subatomic with assembler or machine language, but treacherously slippery and easy to cut yourself with, something like the scientific-use razor blades which came in a package labelled: “WARNING: Knife is extremely sharp. Keep out of children.”

It is my suggestion that Python is a lightsabre, and wielding it well makes a graceful foundation for usability.

Ajax without JavaScript or Client-Side Scripting

Hayward’s Free Intranet Employee Photo Directory

Usability for Hackers: Developers, Anthropology, and Making Software More Usable

Within the Steel Orb

What Evolutionists Have to Say to the Royal, Divine Image: We’re Missing Something!

CJSH.name/punk-eek

Jerry Mander, Four Arguments for the Elimination of Television

Robb Wolf, The Paleo Solution: The Original Human Diet

I have been rereading and thinking over parts of the two titles above, and I have come to realize that at least some evolutionists have something to give that those of us who believe there is something special about humanity would profit from. I believe more than the “special flower” assessment of humanity that Wolf ridicules; I believe more specifically that humanity is royalty, created in the image of God, and if for the sake of argument at least, the agricultural revolution and what follows are largely a mistake, I can say more than that Homo sapiens (sapiens) is the only species out of an innumerable multitude across incomparable time to be anywhere near enough of a “special flower” to make such a mistake. I believe more specifically that man is created in the divine image and is of eternal significance, and each of us is in the process of becoming either a being so glorious that if you recognized it you would be tempted to worship it, or a horror such as you would not encounter in your worst nightmare—and that each of us in the divine image is in the process of freely choosing which we shall be. No other life form is conferred such a dignity—and I would focus that statement a little more and say no other animal.

‘No other animal:’ the phrase is perhaps jarring to some, but I use it deliberately. I do not, in any sense, say mere animal. But I do quite deliberately say animal. Let us turn to Alisdair MacIntyre, Dependent Rational Animals, in the opening of the second chapter:

From its earliest sixteenth century uses in English and other European languages ‘animal’ and whatever other expressions correspond to it have been employed both to name a class whose members include spiders, bees, chimpanzees, dolphins and humans—among others, but not plants, inanimate beings, angels, and God, and also to name the class consisting of nonhuman animals. It is this latter use that became dominant in modern Western cultures and with it a habit of mind that, by distracting our attention from how much we share with other animal species…

Since then, evolutionary claims that we are in fact animals is not a resurrection of the older usage; it is a new usage that claims we are nothing more than animals, a claim not implied by Aristotle’s definition of us as ‘rational mortal animals.’ There is both a continuity and a distinction implied between rational humans and non-rational animals, and while many animals have intelligence on some plane (artificial intelligence, after failing to duplicate human intelligence, scaled back and tried to duplicate insect intelligence, and failed at that too), there’s something special to human intelligence. The singularity we are in now may be a predicament, but no other animal could make a predicament of such dimensions.

I will be interested in a direction taken by Mander and the neo-Paleo movement, in a line that MacIntyre does not really explore. Perhaps his thesis about why we, as dependent rational animals, need the virtues, is greater than anything I will explore here. But I have my sights on something lower.

I would like to define two terms for two camps, before showing where one of them shortchanges us.

The first is revolutionary punk eek. Darwin’s theory of evolution is no longer seriously believed by much of anyone in the (generally materialist) scientific community. People who say they believe in evolution, and understand the basic science, normally believe in neo-Darwinian theories of revolution. That is, with Darwin, they no longer believe that species gradually morph into new species. They believe that the fossil record shows a punctuated equilibrium, ‘punk eek‘ to the irreverent, which essentially says that evolution revolutionhas long periods of stable equilibrium, which once in a long while are punctuated by abrupt appearance and disappearance of life forms. (What causes the punctuations is accounted for by the suggestions that life forms evolve very slowly when things are on an even keel, but rapidly mutate substantial beneficial improvements when things turn chaotic. When I protested this, I was told that there were people who evolved HIV/AIDS resistance in a single generation, a premise that I cannot remotely reconcile either with my understanding of probability or of genetics.) As my IMSA biology teacher put it, “Evolution is like baseball. There are long periods of boredom interrupted by intense periods of excitement.”

Now I am deliberately making a somewhat ambiguous term, because I intend to include old earth intelligent design movement’s authors such as Philip Johnson, who wrote Darwin on Trial. Johnson argues that natural forces alone do not suffice to punctuate the equilibrium and push evolution revolution forward; but his interpretation of the fossil record is largely consistent with that of someone who believes in neo-Darwinian revolutionary punk eek. And so I lump Richard Dawkins and Philip Johnson together in the same cluster, a move that would probably leave them both aghast.

The distinction between them is between revolutionary punk eek adherents, who believe the universe is billions of years old, and young earth creationists, including perhaps some Jews, most Church Fathers, Evangelical conservatives who created Creation Science as an enterprise of proving a young earth scientifically, and Fr. Seraphim (Rose), who saw to it that Orthodox would not stop with quoting the Fathers but additionally import Creation Science into Orthodoxy.

Now let me give some dates, in deliberately vague terms. The age of the agricultural revolution and of civilization weighs in at several thousand years. The age of the world according to young earth creationists is also several thousand years. According to revolutionary punk eek, the age of the world is several billion years, but that’s a little besides the point. The salient point is where you draw the line, a question which I will not try to settle, beyond saying that the oldest boundary I’ve seen chosen is some millions of years, and the newest boundary I’ve heard is hundreds of thousands of years. What this means in practice is that on young earth assumptions, agriculture is about as old as the universe, while on revolutionary punk eek assumptions, the beginning of the agricultural revolution occurred at absolute most in the past five percent of the time humans have been around, not leaving enough time for our nature to really change in any way that makes sense for revolutionary punk eek. Or to put it more sharply, young earth creationism implies that agrarian life has been around about as long as the first humans, and revolutionary punk eek implies that the agricultural revolution represents a big-picture eyeblink, a mere blip on the radar for people built to live optimally under normal hunter-gatherer conditions. To the young-earther, there might be prehistory but there can’t be very much of it; the normal state of the human being is at earliest agrarian, and there is not much argument that the ways of agrarian society are normative. To the revolutionary punk eek adherent, there is quite a lot of prehistory that optimized us for hunter-gatherer living, and agrarian society and written history with it are just a blip and away from the baseline.

The other term besides revolutionary punk eek is pseudomorphosis, a term which I adapt from an Orthodox usage to mean, etymologically, conforming to a false shape, a square peg in a round hole. The revolunary punk implication drawn by some is that we were optimized for hunter-gatherer living, and the artificial state known in civilisation and increasingly accelerating away from these origins is a false existence in something like the Call of C’thulu role playing game played by my friends in high school, where rifts occur in the fabric of reality and “mosters” come through them, starting with the relatively tame vampires and zombies and moving on to stranger monsters such as a color that drives people mad. A motley crew of heroes must seal these rifts, or else there will come one of the “Ancient Ones”, a demon god intent on destroying the earth. (It is an occult picture, but not entirely different from the state of our world.)

I don’t want to give full context, but I was in a discussion with my second thesis advisor after my studies, and he asked whether I would make ‘allowances for greater ignorance in the past.’ Now he was a member of a college with one of the world’s best libraries for the study of Graeco-Roman context to the New Testament, and he was expert in rabbinic Jewish cultural context to the New Testament. Hello? Has he heard of the Babylonian Talmud? A knowledge of the Talmud is easily on par with a good liberal arts education, and it really puts the reader through its paces. And its point is not just a training ground with mental gymnastics that stretch the mind, but something far greater. My reply to him was, ‘I do not make allowances for greater ignorance in the past. Allowances for different ignorance in the past are more negotiable.’ And if it is true that we live in escalating pseudomorphosis, perhaps we should wonder if we should make allowances for greater ignorance in the present. I know much more about scientific botany than any ancient hunter-gatherer ever knew, but I could not live off the land for a month much of anywhere in the wild. Should I really be looking down on hunter-gatherers because unlike them I know something of the anatomical structure of cells and how DNA basically works? If a hunter-gatherer were to an answer, an appropriate, if not entirely polite, answer would be, “Here is a knife, a gun, and a soldier’s pack with bedroll and such. Live off the land for a month anywhere in the world, and then we’ll talk.”

To take an aside and try to give something of a concrete feel to what hunter-gatherers know that we do not, what might constitute ‘greater ignorance in the present’, I would like to give a long quote from Mander (I am tempted to make it longer), and point out that Mander is following a specific purpose and only recording one dimension. He does not treat for instance, interpersonal relations. Not necessarily that this is a problem; it may be expedient for the purpose of a written work to outline what a friend does for work without making much of any serious attempt to cover who that friend is as a person and what people and things serve as connections. Mander describes what contemporary hunter-gatherers have in terms of perception that television viewers lack:

In Wizard of the Upper Amazon F. Bruce Lamb records the apparently true account of Manuel Cordova de Rios, a Peruvian rubber cutter, kidnapped by the Amaheuca Indians for invading their territory and forced to remain with them for many years. Rios describes the way the Indians learned things about the jungle, which was both the object of constant study and the teacher. They observed it first as individuals, experiencing each detail. Then they worked out larger patterns together as a group, much like individual cells informing the larger body, which also informs the cells.

In the evenings, the whole tribe would gather and repeat each detail of the day just passed. They would describe every sound, the creature that made it and its apparent state of mind. The conditions of growth of all the plants for miles around were discussed. This band of howler monkeys, which was over here three days ago, is now over there. Certain fruit trees which were in the bud stage three weeks ago are now bearing ripe fruit. A jaguar was seen by the river, and now it is on the hillside. It is in a strangely anguished mood. The grasses in the valley are peculiarly dry. There is a group of birds that have not moved for several days. The wind has altered in direction and smells of something unknown. (Actually, such a fact as a wind change might not be reported at all. Everyone would already know it. A change of wind or scent would arrive in everyone’s awareness as a bucket of cold water in the head might arrive in ours.)

Rios tells many of the stories concerned with the “personalities” of individual animals and plants, what kind of “vibrations” they give off. Dreams acted as an additional information systems from beyond the level of conscious notation, drawing up patterns and meanings from deeper levels. Predictions would be based on them.

Drugs were used not so much for changing moods, as we use them today, but for the purpose of further spacing out perception. Plants and animals could then be seen more clearly, as if in slow motion (time lapse), adding to the powers of observation, yielding up especially subtle information to how plants worked, and which creatures would be more likely to relate to which plants. An animal interested in concealment, for example, might eat a plant which tended to conceal itself.

Reading these accounts made it clear to me that all life in the jungle is constantly of all other life in exquisite detail. Through this, the Indians gained information about the way natural systems interact. The observation was itself knowledge. Depending on the interpretation, the knowledge might or might not become reliable and useful.

Each detail of each event had special power and meaning. The understanding was so complete that it was only the rare event that could not be explained—a twig cracked in a way that did not fit the previous history of cracked twigs—that was cause for concern and immediate arming.

Examples could easily be multiplied. There are many passages like that in the book, and many to be written for life. We seem to have a filter where ‘knowledge’ implicitly means ‘knowledge of the sort that we possess’, and then by that filter judge other cultures, especially cultures of the past, as knowing less than us. The anthropological term is ethnocentrism. I believe a little humility is in order for us.

Humans have eyes, skin, a digestive tract, and other features that are basic animal features. When studying wild animals, for instance, we expect them to function best under certain conditions. Now the locality of an organism can vary considerably: in North America, there are certain relatively generic species of trees that can be found over a broad swath of land, while in Australia, trees tend to be more specialized and occupy a very specific niche. But in some ways human adaptability is overemphasized. The human body can adapt to regularly breathing in concentrated smoke, in one sense: keeping on smoking is so easy it is hard to quit. But that does not mean that human lungs adapt to breathing in concentrated smoke on a regular basis. The ease with which a person or society can adjust to cigarettes exceeds any adaptation revolutionary punk eek would allow for lungs. Perhaps hunter-gatherers have ingested some smoke from fires, and possibly we have enough tolerance that we do not puff up with an allergic reaction at the first smoke. Nonetheless, in no quarter has the human body adapted to be able to smoke without damage to lungs and health.

For most of the human race to embrace the agricultural revolution, and the revolutions that follow, might be like smoking. We can adapt in the sense of making the change and getting used to it. But that does not include, metaphorically speaking, our lungs. We still have hunter-gatherer lungs, as it were, perhaps lungs that work better if we follow neo-Paleo diet and exercise, and we have adopted changes we have not adapted to.

What punk eek revolutionists have to give us

What is perhaps the most valuable thing revolutionary punk has to offer us is a question: “What conditions are we as revolutionary organisms best adapted to?” And The Paleo Solution offers a neo-Paleo prescription for diet and also exercise. This may not exactly be like what any tribe of hunter-gatherers ate, but it is lightyears closer than fast food, and is also vastly closer than industrial or even agrarian diets. And the gym-owning author’s exercise prescription is vastly more appropriate than a sedentary lifestyle without exercise, and is probably much better than cardiovascular exercise alone. And Mander’s Four Arguments for the Elimination of Television argues, among other things, that humans do substantially better with natural organic sunlight than any of the artificial concocted lights we think are safer. They don’t suggest social structure; the question of whether they held what would today be considered traditional gender roles is not raised, which may itself be an answer. (For the text Mander cites, the answer is ‘Yes’, although Mander, possibly due to other reasons such as brevity and focus, does not make this point at all clear.) And they don’t complete the picture, and they don’t even get to MacIntyre’s point that our condition as dependent and ultimately vulnerable rational animals means that we need the virtues, but they do very well with some of the lower notes.

The argument advanced by vegetarians that we don’t have a carnivore digestive tract is something of a breath of fresh air. It argues that meat calls for a carnivore’s short digestive tract and vegetables call for an herbivore’s long digestive tract, and our digestive tract is a long one. Now there is to my mind, a curious omission; for both hunter-gatherer and modern times, most people have eaten an omnivore’s diet, and this fallacy of the excluded middle never brings up how long or short an omnivore’s digestive tract is: apparently, we must either biologically be carnivores or herbivores, even though the people vegetarians are arguing with never seem to believe we should be straight carnivores who eat meat and only meat; even people who call themselves ‘carnivores’ in fact tend to eat a lot of food that is not meat, even if meat might be their favorite. But the question, if arguably duplicitous, is a helpful kind of question to ask. It asks, “What are we adapted to?” and the answer is, “Living like hunter-gatherers.” That’s true for the 2,000,000 or however many years the genus Homo has been around, and it’s still true for the 200,000 years Homo sapiens sapiens has been around. Or if you want to subtract the 10,000 years since the agricultural revolution began and we began to experiment with smoking, 190,000 years before we created the singularity that opens rifts in the fabric of reality and lets monsters in, including (as is argued in Four Arguments for the Elimination of Television, in the chapter on ‘Artificial Light’), the ‘color that makes people mad’ from the phosphor glow of a television screen in a darkened room.

Some arguments vaguely like this have looked at written history, instead of archaeology. Sally Fallon, in the Weston A. Price spirit, wrote the half-argument, half-cookbook volume of Nourishing Traditions, which argues that we with our industrial diet would do well to heed the dietary solutions found in agrarian society, and prescribes a diet that is MUCH better than the industrial diet. But she essentially only looks at recorded history, which is millenia newer than agricultural beginnings. But the pseudomorphosis was already well underway by the times recorded in Nourishing Traditions, and not just diet. Everything had begun a profound shift, even if with later revolutions like electricity and computing the earlier agrarian patterns looked like the original pattern of human life. And indeed if you are a young earther, the first chapters of Genesis have agriculture in the picture with some of the first human beings. And so Bible-focused young earth approaches will not arrive at the correct answer to, “What conditions is man as an animal [still] best adapted to?” In all probability they will not arrive at the question.

Revolutionary punk eek will. It asks the question, perhaps with a Western focus, and its answers are worth considering. Not on the level of virtue and ascesis, perhaps, but the ‘lower’ questions are more pressing now. The default diet and the default level of exercise are part of a profoundly greater pseudomorphosis than when the agricultural revolution took root. And getting a more optimal diet and exercise now may be a more pressing concern, and a diet of more sunlight and better light, if you will, and other things. There is a certain sense in which sobriety is not an option for us; we have a gristly choice between being 5, 10, or 20 drinks drunk, and people who take into account this gift from revolutionary punk eek will be less drunk, not sober. But it is worth being less drunk.

So a word of thanks especially to secular adherents of revolutionary punk eek who do not see us who have perhaps made the mistake of civilization as any particular kind of “special flower,” and ask, “What is Homo sapiens sapiens biologically adapted to as an animal and an organism?” They might not hit some of the high notes, but I am very grateful for the neo-Paleo diet. And I am grateful to Mander’s Four Arguments for the Elimination of Television for exposing me to the unnatural character of artificial light and the benefits of real, organic sunlight. I’ve been spending more time outside, and I can feel a difference: I feel better. Thanks to revolutionary punk eek!