Editor’s Note: Excerpted from Lauren Ipsum: A story about computer science and other improbable things, author Carlos Bueno introduces us to Lauren and her adventures in Userland. The author provides a Field Guide in which he explains the strange concepts Lauren faces and how they are expressed in a computer programming environment.
Lauren Ipsum had been lost in the woods all morning. The poor girl didn’t know where she was or where she was going.
It had all started with an argument. Her mother wanted her to go to summer school, and naturally Laurie didn’t want to go. “Children in other countries go to school year round,” her mom said. “We aren’t in other countries,” Laurie replied. “Extra classes are how to get ahead,” Mom said. “Summer is for having fun,” Laurie insisted. The argument went on and on and got loud near the end. To calm down, Laurie took a walk in the woods.
When people are faced with something they don’t want to do, they often do something they aren’t allowed to do instead. Before long, Laurie had gone farther into the woods than she had ever gone before.
Being lost was kind of fun. Out here, Laurie could be anything she wanted to be, and there was no one to tell her different.
She was a secret ninja, moving like a ghost through the ancient forest. Light and shadow danced under the leaves, and she danced with them. no one could hear her stealthy ninja footsteps. no one would see her coming until it was too —
“Chiguire! ” said a voice up ahead. A shape came toward her out of the darkness. Was it an angry spirit? A dire beast?
“Argot! ” the creature said. It was like a mouse-dog, or a dog-mouse. That is to say, it was the size of a dog, but it looked more like a mouse. It walked right up to Laurie and began nuzzling her hand in a very un-beast-like way.
“Aw, you’re so friendly!” Laurie said, in a rather un-ninja-like fashion.
“Repl! ” it said, as it put a webbed foot on her knee.
“You’re a funny-looking thing, aren’t you? What’s your name, huh? What should I call you?”
“Okay, I’ll call you Argot. Are you hungry? What do . . . things like you eat?” She offered it some peanuts.
“Snarfl! ” it snarfled, eating out of her hand.
“Hey, little guy,” she said, tickling its chin, “you don’t know the way back to Hamilton, do you?
“Hamilton! ” it said excitedly.
“You do know a way?”
“Lalr! ” it lalred, tongue hanging out.
“So where is it?”
“Isit! ” it said.
“I mean, how do I get there?”
“Gether! ” it answered.
“You’re just repeating what I’m saying, aren’t you?”
“Arentyou! ” it said.
“That’s what I thought. Animals can’t talk.”
So now I’m lost, Laurie thought to herself. How do I get unlost? She remembered something about moss growing on the north side of trees. There wasn’t any moss, so that was out. The sun rises in the east and sets in the west . It was late morning, and the sun was almost overhead. No help there either.
She wandered around, flipping her lucky red poker chip. If the chip landed on heads, she walked to the left for a while. If it landed on tails, she walked to the right for a while.
“Burble. . . ” Argot waddled behind her, making nonsense noises.
“No, don’t follow me, Argot. Shoo!”
“I like you, but I’m not allowed to have a dog. or a mouse, or a dog-mouse, or whatever you are. Go along now—go home!” no matter what she said, the ugly little thing wouldn’t give up. It seemed willing to follow Laurie all the way to . . . wherever she was going.
Maybe if I wait for the stars to come out, she thought to herself. No, that’s silly. I don’t know which stars are which!
“Frobit! ” Another creature like Argot, but bigger, came out of the underbrush. It tried to lick her face.
“Ugh, your breath stinks!”
“Wibble! ” A third creature came up from behind and butted its head against her.
“Whoops! Hello to you, too.”
More creatures were coming from all directions. The noise was getting louder.
“Uh,” Laurie uhhed.
Argot’s friends were no longer just nuzzling. They were crowding all around her, pushing and shouting. She was being mobbed.
Laurie panicked and ran. The gang of creatures howled and chased after her.
She could barely stay on her feet, running through the tangled underbrush, but she was too afraid to slow down.
Her escape was blocked by a tall green hedge that stretched in both directions. once upon a time it might have been part of a garden, but now it was wild and disorderly. Laurie squeezed her way through a gap in the hedge and kept running until she thought she was safe. The creatures were far behind.
The forest looked different on the other side of the hedge. For one, the trees had red and black stripes. Black tree trunks split into two red branches. Those split into four black branches, which split into eight red branches, and on and on, until the branches ended in millions of tiny black leaves. In fact . . .
The creatures were still chasing her! Laurie tried to run away again, but she couldn’t go very fast. Her throat was raw, and her legs were beginning to tremble.
“Help! Stop it!” she cried, hoping someone would hear her. “Make them stop!”
A small man carrying a large pack stepped in between Laurie and the mob. Dishes and pots and pans and cowbells rattled around. The creatures halted a few paces away, making awful, angry noises.
“Are you okay, miss?” he said.
“These—these mouse-dogs won’t leave me alone!”
“It’s just a bunch of Jargon,” he said. “Hold still and stay calm.” He cupped his hands to his mouth.
“STANI! ” he shouted at them.
All of the Jargon froze, their ears aquiver.
“CEPAT! AFVIGE! SCHNELL! SCHNELL! ”
And just like that, they were gone, running away into the gloom of the forest.
Laurie collapsed against a tree. “Th-thank you,” she said.
“Sure thing, miss. Just rest here a while,” the man said. He dropped his pack with a loud jangle, then sat on top of it.
“What’s a Jargon?” she asked once she’d caught her breath.
“Jargon live in the swamps. They feed on attention. If they can’t get that, they’ll settle for fear and confusion.”
“But the first one was so friendly! I just talked to it a little and it started following me.”
“That’s how it starts,” he said. “A little Jargon doesn’t look like much. Some people even keep them as pets. But they form packs, and they are very dangerous.”
He shrugged. “What can you do? Stand your ground and act confident. If you show any fear, a pack of wild Jargon will run you right over.”
“What did you say to make them leave?”
“I have no idea. It sounded good, though, didn’t it?” he said. “So what’s your name, miss?”
“My name is Laurie. I think I’m lost.”
“That’s wonderful!” the man said. “I’m lost too.”
“Oh no! You mean you don’t know where you are?”
“No, I know exactly where I am.”
“So you don’t know where you’re going?”
“I know exactly where I’m going. I’m on the way home.”
Laurie was almost too confused to feel confused. “But if you know where you are ,” she said, “and you know where you’re going , how can you be lost?”
“Because I don’t know how I’ll get there,” the man grinned. “I’m a Wandering Salesman.”
“A Wandering Salesman? What’s that?”
“Wewander from town to town, selling and buying. There are two rules: youhave to visit every town before going home, and you can’t visit any towntwice. Every road is the road home except the road behind me.”
“So you always go to the next place you’ve never been to?” she asked.
“That’sright! You’re guaranteed to get home eventually,” he said. “It’s onlylogical. Along the way I’ve seen the sunrise over the Towers of Hanoiand climbed the Upper Bounds. I’ve sat down at the Lookup Table andfloated on the overflow river. It’s a good life. Being lost can be fun!”
“It’s not fun for me anymore,” said Laurie. “I don’t really know where I am, or where I’m going, or how to get there.”
“Hmm. Mostly lost is fun, but completely lost is serious. You’re going home too, right?”
“Yes, I want to go home!” she said. “And where do you live?”
“I live in Hamilton with my mom. Do you know where it is?”
“Not a clue. Never heard of it!” he said cheerfully. “But that’s one out of three, anyway. You have a definite goal.”
“Um, I guess so.”
“And I know where I am, and since we’re in the same place, that means I know where you are. You are in the Red-Black Forest, near Mile Zero.”
The what near who? she thought to herself, but the man was still talking.
“ . . . now you know where you are and where you are going!” the Salesman said. “You are only mostly lost.”
“But I still don’t know how to get there!”
“Hmm,” he hmmed, thinking it over. “I know someone you should talk to: a wise lady named Eponymous Bach.”
“Where is she?”
“She lives in Bach Haus at the end of Bach Way, in the town of—”
“How did you guess? Bach is an excellent Composer. At the very least, she can name your problem.”
That sounded like a much better plan than waiting for moss to grow!
“Okay, I’ll do it. Will you go with me?”
“I would love to, Laurie. But I’ve just come from visiting Bach,” said the Salesman.
“Oh. That means you can’t go back, right?”
“Right. I can take you up to the road, but from there you are on your own.”
TheWandering Salesman showed her the way to the edge of the forest. Justpast the last tree was a road sign. “Ah, here we are,” he said. “Routeone, Mile Zero.”
“I’ve never seen a Mile Zero ,” said Laurie.
“Everythinghas to start somewhere. It may not look like much, but this is a veryspecial place. You might even say it’s the starting point of the wholeSystem.”
“What comes after Mile Zero?”
“Mile one, of course. And right after that is the town of Bach. Are you ready?”
“Yes, I think so. Thank you!”
“You’rewelcome, Laurie. Good luck! Maybe our paths will cross again.” TheWandering Salesman headed off, cowbells and pans rattling, to a placehe’d never been before.
And so did Laurie…
Youmight have wondered whether this or that part of the story is real. Canyou really make a Fair Coin out of an Unfair Coin? Can you really useants to find shorter paths? Yes, you can do both—and a lot more besides.In this guide, you’ll find out how some of the places, people, andthings Laurie encounters in Userland connect with our own world.
Jargon. In the real world, jargon doesn’t look like a mouse-dog, or even adog-mouse; it looks just like an ordinary word! Computer scientists (andreally, all scientists) love inventing new words. We call thesespecialized words jargon or argot . Jargon can be good,because it saves time when you’re discussing things with yourcolleagues. It can also be bad, because it excludes nonexperts from theconversation.
When you’re just starting out with programming, allthe jargon, argot, and weird new words can be intimidating, but don’tlet that stop you from learning. Jargon can be silly, or powerful, ordangerous, depending on how you use it. But no matter what words youuse, if you always obfuscate instead of explicate, no one willunderstand you!
Wandering salesman. The Traveling Salesman problem is a classic computer science question. Given a group of cities, your goal is to find the shortest Hamiltonian path ,a route that lets you visit each city only once. If you have a largenumber of cities, it would take a very long time to calculate that path,even for a computer. So the Wandering Salesman might be on the road forquite a while!
Instead of calculating the exact answer, the salesman looks for a path through all the towns that’s close enough to being the shortest. A very interesting aspect of the TravelingSalesman problem is that humans are pretty good at solving smallexamples by hand. There is much discussion about what algorithm peopleuse in their heads while solving it.
The Upper and Lower Bounds .In Userland, the Upper Bounds are a mountain range, as tall as anythingcan be. The Lower Bounds are valleys as low and deep as anything canbe. nothing can be higher and nothing can be lower than these twobounds.
In the real world, finding an upper and lower limit on aproblem can simplify things a lot. Say you have to guess a person’s age.It’s unlikely that anyone is over 150 years old, and no one can beyounger than 0 years old. So, 150 is the upper limit and 0 is the lower limit .You can narrow down the bounds even more with simple questions. Is theperson still in school? If so, then he is probably younger than 30. Canthe person drive a car? If so, then he is probably older than 15.
Mile Zero. You sometimes see signs that mark a point on a highway, like “Mile 14.”Now, if there is a Mile 14, then there must be a Mile 13, and a Mile12, and so on. Everything has to start somewhere, and Zero is where itstarts. Possibly the most famous Mile Zero is in key West, Florida. It’sat the beginning of US route 1, which goes all the way to Canada. Ifyou look carefully and are very lucky, you might find a Mile Zero nearwhere you live.
Editor's Note: This is only a sampling of the Field Guide that pertains to Chapter 0.
Used with permission from No Starch Press , Copyright 2014, this article was excerpted from Lauren Ipsum: A Story About Computer Science and Other Improbable Things , written by Carlos Bueno. Available now in bookstores, the book can also be purchased online .
Carlos Bueno is a former Facebook engineer who currently works at the databasecompany MemSQL. He writes articles about computer science, programming,and the structure of the Internet.