A Step Forward for Freedom – And a Reminder for Myself

By now you have heard that the Supreme Court of the United States has said that it is illegal to deny marriage to the citizens of this mighty nation simply because they want to marry someone of their own gender. This makes me happy, but not nearly as happy as it has made some people around me.

“I’m a person! I’m a person in my own country!” one friend said, before jumping in his car to drive a few hundred miles to celebrate with his partner in Texas. Man, that was cool. I’m no constitutional scholar, but I have to think this decision will have other, also-awesome echoes. “You can’t limit someone’s rights because of…” just got a lot stronger. A libertarian’s dream*.

So, I’m celebrating freedom, and I’m celebrating a magnificent milestone in the lives of some of my friends. It’s all good. But there’s a little part of me that asks, “Why did it even have to come to this?” Here is my rather tortured metaphor:

Imagine you’re in a big room with a lot of people. Everyone seems to be getting along just fine, but after a while you notice something: some of the people in the room are on fire. No one seems to be doing anything about it. You turn to your friends and say, “Jesus, shouldn’t we be putting out those fires?” You talk amongst yourselves and it quickly becomes clear that the people in question would rather not be on fire. The solution seems pretty obvious.

But a few wing nuts actually think we should not put out the fires, claiming those people chose to be on fire. Huh. So we talk some more, some people louder than others. Personally, I wasn’t talking that loudly, or at least only to people who already agreed with me. That’s why I don’t feel the right to crow as loudly today. I could have done more. Some of the let-them-burn crowd ended up lighting their own pants on fire (liar, liar)** and finally we decided that it was time to put the fires out. The joy expressed by those no longer burning was heartfelt and heartening.

Watch that joy. Participate in that joy. Maybe you can get a feel for what it is like to have a burden lifted.

Then look around the big room. Do you smell smoke? So do I.
______

* Oddly, those who self-identify as conservative voted in this case to give the state power over the individual. It happens pretty often. The word just doesn’t mean what it used to.

** A teachable moment for the leaders of the groups who, for their own political gains, wanted to continue to deny homosexuals their rights: if you go on about the “sanctity of marriage”, DON’T COMMIT ADULTERY! We are fortunate that the opposition couldn’t keep its dick in its pants.

3

A Big Milestone

It seems appropriate that the ride that put me over 5000 miles was a slog. There are days like that, days you find yourself a long way from home and you’re not sure where the energy will come from to get you there. I’d fought a fierce headwind on Wednesday, and Thursday I was still feeling the effort. Man, I hate headwinds.

The traffic lights along Homestead were no help either as I plodded along, but since I had little momentum it was less annoying to lose it. Instead I waited, not winded (I was too tired to burn enough energy to require heavy breathing), and when the light changed in my favor I saddled up and with a moan I pushed ahead.

I catch myself moaning fairly often, in fact, especially when I discover myself in too tall of a gear when I pull out from a light. It’s not so much a moan of pain as it is a super-slo-mo version of a tennis player’s grunt, releasing from the diaphragm as one makes an effort. Only in my case the effort is stretched over a long period of time. “Uh-h-h-h” I sound like Frankenstein’s Monster as depicted in an old B-movie.

5000 miles. That’s a lot in 13 months; not bad at all for a gray-bearded somewhat-overweight dude. (This spring I entertained the idea of crossing that magical line before my bike’s first birthday, but April didn’t go too well, mileage-wise, and May wasn’t great either.) Next week I’ll cross another, perhaps more meaningful milestone: 100 miles for each year I’ve been on this planet. And I should be able to get the next 5000 before another year passes. (Although I won’t be getting many miles in June.)

You might think, with all that riding, that my legs would be really buff by now, but that’s relative. I still have skinny legs. They’re just a heck of a lot more muscular than they used to be.

I still have the newbie glow about my alternate lifestyle, that enthusiasm that makes commuting by bike more fun, not just cheaper and less frustrating and environmentally friendlier and healthier. This might be annoying to the people around me; I mention my bike fairly often in conversation and I’m a regular poster on Apple’s bike-to-work mailing list. The local bike shop knows my face, but they don’t see it as often as they used to. Gradually I’m getting more self-sufficient.

Toward that end, I’ll be taking a class on bike maintenance in July. I’ll be getting 18 hours of instruction by a trained expert while I work on my own bike from the inside out. I’m really looking forward to it. It’s run by a shop in town called Good Karma Bikes, a non-profit outfit dedicated to making the world a better place by providing transportation to people who can’t afford cars and by hiring emancipated foster kids and others who need a good start in life.

I’ve learned a lot since my last bike-milestone post, things like “always give the crossing guards a friendly wave and sometimes they’ll let you pass before stopping traffic,” but really there’s one lesson that stands out above all the others. I mentioned it in a post not long ago, but it bears repeating:

Just keep pedaling.

3

Remembering a Great

Watching sports silently, I just saw an ad for the Preakness Stakes, the second jewel in the triple crown of horse racing.

It got me to thinking about a horse I knew as a kid. Secretariat won the Kentucky Derby in record time, and the buzz began. This was one ridiculously fast horse. I really wasn’t aware of how special that was at the time.

But the three races of the triple crown are different. A horse great at one distance may not do so well at another. The Preakness is a sprint, while the Belmont is a grind. The races favor different horses.

Unless that horse is Secretariat. Forty years and a bit later, Secretariat still holds the records for all three races. I remember watching those races on TV, the first time I ever gave a hang about horse racing, and I remember a horse flying around the course, leaving the pack far behind. In the Belmont, only four other horses even bothered to run against him. The track did not accept “show” bets. One horse kept up for a while, but the tremendous machine put down the fastest 1.5 miles in history of the sport and won by 31 lengths.

It appeared, to a kid watching, almost effortless. The horse just flew, while the rest of the field slogged along somewhere behind. The way he ran, it was like he was barely touching the ground.

I’m not sure, but I think the Belmont was his last race. There was nothing left to prove, an no track wants a race where the outcome is not in doubt. Secretariat broke the game. Nobody asked the horse if he wanted to keep running. Of course, they never asked if he wanted to run in the first place. But, man, that kid could fly. I have to think he enjoyed it.

A few years later I saw a “where are they now” feature and Secretariat was mentioned. I saw a clip of the majestic chestnut romping around in a field, a beautiful horse, still sleek, still fast, still carrying the love of speed, running just because he could. That’s a good retirement.

Pulling for the Flames Now

I’ve always enjoyed hockey; it’s a game where something is always happening, scoring is a significant event, and the clock keeps ticking even when you wish it wouldn’t. Growing up in the coccyx of the rocky mountains in northern New Mexico, there wasn’t a lot of media coverage of the sport (this was before Colorado had a team), but it was fun to watch when it presented itself.

A brief aside: When I was growing up there was hockey right there in my town, at the local outdoor ice rink. It never even occurred to me that I could participate. I didn’t know anyone who did. I wonder if the hockey environment there has changed in the intervening years.

The first time I formed a loyalty to a team was on my Homeless Tour, when I was passing through Canmore, Canada. The Calgary Flames were in the finals, one win from the Stanley Cup. I got to the bar section of the Boston Pizza just in time to grab the last seat at the bar, behind the taps, and I proceeded to have a Seminal Sports Experience. It started when the whole place went quiet out of respect for the United States national anthem. Then came ‘O Canada’ and the whole damn bar belted it out. Things just got better from there.

The Flames lost, but the fans I met that day were awesome on every level. I became a Calgary fan, but even more I became a fan of Calgary’s fans.

Cut to late nights in the darkness, lying on the Curiously Uncomfortable Couch in my little flat in Prague, listening to radio calls via the Internet. The Flames’ play-by-play announcer was mesmerizing; in my book only the Blackhawks’ announcer was in the same league. Good times.

In the ensuing years I’ve come to be a Sharks fan. It’s the first time I’ve had a local hockey team to root for. I still harbor some loyalty to the Flames, and especially to the fans up there, but the Sharks are my team. So it goes.

I have also grown a hatred for the Los Angeles Kings. Thugs and morons, and if the league is crooked, they are crooked in the new-biggest-market’s favor. Not sure how many season-ending knee-on-knee ‘accidents’ have to happen before someone looks a little closer.

The season is winding down, and the Sharks are out of the playoffs. It’s the end of the third-longest playoff streak in major sports. That makes me sad. The Kings, the current champions, are on the bubble with two games to go. It will either be them or… the Calgary Flames.

Nobody thought the Flames had a chance this year. They’re rebuilding. A lot of kids with talent, but it takes time and experience to make a contender. But here they are, on the brink of making the playoffs. If they get in, Los Angeles doesn’t. It’s that simple.

The Kings have two games left. Tomorrow they play the Flames. Then on Saturday they play the Sharks. Words cannot describe the joy I will feel if the Sharks kill the Kings and put the lads from Calgary into the playoffs.

And this is sports. You love your guys. You hate the filthy bastards who have personally wronged you. You struggle when one of your guys winds up playing with the filthy bastards. But there’s a little more. There are the great fans you meet, people who love their team but aren’t assholes about it. We call those people ‘Flames fans’.

If I were so freakin’ rich that I solved the world’s fresh water problems and had money left over, I’d make an offer for the Flames, just to be part of that thing they have going on up there.

3

The First Anniversary of my 50th Birthday

As I marched through my 40’s I’d been thinking about how to best celebrate my 50th, but the months leading up to that milestone were brutal. At one point I made a decision to reduce my work day to 17 hours so that I could sleep for five. The project was running behind, but I was building something awesome. Really groundbreaking. The kind of thing you go all out for.

On April Twoth, 2014, my 50th birthday, one year ago today, the project was canceled. I was deflated, too tired to feel anything more. Lost.

It was the start of a pretty good year.

By any meaningful measure, I’m younger now than I was a year ago. Were you to take my medical statistics from last year and my current numbers and give them to a doctor with no hint what order they were taken in, my this-year stats would be chosen as ‘younger’ every time. The bicycle is a big part of that, of course. Going back to working 40 hours a week (which seemed like a vacation for the first three months) didn’t hurt either.

Also this year, I’ve accepted an offer from another group at Apple, and I’ll be starting there in a couple of weeks. I’ll be working at Apple University, an organization devoted to keeping the unique culture at my company alive even as Apple becomes mind-bendingly massive. One of Steve’s final legacies. I’ll be personally responsible for keeping Apple great. Yep, me. Personally. I’m ready.

Other noteworthy awesome things this year: the bread machine (how in the name of all that’s holy have we done without one so long?), lots of good home cookin’, fast friendships, our wee dog Lady Byng and her trips to the dog park each Saturday, and top of the top of the list, my sweetie. Dang things are nice when she’s around.

An hey, speaking of fun, how ’bout that Halloween booze thing? I’m expecting a Nobel Prize nomination for that work, though the official sweetie of MR&HBI was the leader of that effort. The accidental bottle of 18-year-old Scotch may turn out to be a blessing or a curse. Only time will tell. But dang, it’s good.

Of course there were not-so-great things as well. A car with a couple of decades of useful life ahead of it was suddenly terminated. Now we have car payments. But no one was hurt — even the bad things could have been worse.

The cloud over the parade: not a whole lot of writing getting done. Gotta figure that out. Which is what I said last year, and the year before. But the bicycle was a structural change in my life that worked; I just have to make another.

But to me this really isn’t my 51st birthday, it’s one year after my 50th. I had anticipated the big 5-0 as a landmark, not as a scar. Fifty plus one is about healing, and appreciating just how good life can be. Because lately, it’s been pretty damn good.

1

Passed by a Fat-Tire

When I started riding to work, I was one of the slower ones out there. When stopped at a light, there was little doubt who would be pulling out first when it was time to crank. After a while, though, there were a few other riders where things were not so clear-cut. I started to look for clues while stopped, to know if I should be getting out of the way, or working to get in front while it was safe.

A couple of lessons I learned: 1) some of those fat-bottomed girls pack a lot of muscle down there; 2) don’t even think about trying to pass someone on skinny little racing tires.

But there is one category I feel pretty comfortable pushing ahead of: guys wearing sweatshirts who are riding bikes with fat tires. Most of them are commuting, like me, but they’re just not in as big a hurry — if they wanted to go fast, they’d have equipment designed for that. I assume they are not going as far.

On yesterday’s ride, however, as I pushed up Willow at (for me) a pretty good pace, a dude in a sweatshirt riding a bike with fairly wide tires passed me in style. I looked at his receding form, his near-effortless cadence as he pushed his pedals, and was impressed. He would have shamed a lot of the spandex crowd.

The Gods of Traffic favored me, and I caught up to him at the next light. No ambiguity about who should be at the front of the pack here. I waited behind him, and when the light changed he moved out effortlessly.

I mean, literally effortlessly. He didn’t pedal at all. His bike had an electric motor. He could go faster than cars do on that stretch, and he had the go-to-the-head-of-the-line benefit of the bike lane at traffic lights. Not a bad way to travel.

1

Tugging the Heart-Strings

TV playing silently in front of me, showing an ad with a kid, maybe twelve years old, on the baseball diamond throwing out the ceremonial first pitch at a big-league ballgame. The kid did a pretty good job, a little low and outside, but with some zip. The catcher scooped it out of the dirt and held it up the way catchers do to show the umpire they have it. Then the catcher took off his mask and the kid lost his shit. It was his dad, back from military service overseas. Joy ensued.

I have no idea what that ad was selling. I wish I did, because if it isn’t shitty beer, I’d buy some.

It’s a Tough Life

I mentioned to the light of my life that I was craving burgers to replenish my strength after my last (for a while) visit to the colon doctor.

For most people, the response would be, “where do you want to get them?” Not so my sweetie. Her response: “I’ve been wanting to make burger buns!”

And so she did.

IMG_0925

3

The Last Thing You Do

A few years ago, a friend of mine was at a funeral. There’s a part of the ritual in which you sit in climate-controlled comfort and gaze upon the corpse, then there’s a procession from that place to the plot where those remains will be interred. Well, slippery roads, a steep hill, an idiot in an SUV, etc., led to the hearse getting t-boned in dramatic fashion. Before the procession could proceed, a new corpse-buggy had to be called for.

It arrived, and that’s when the powers that be discovered that the coffin itself had also been damaged. The seals had been broken. The body had to be taken back to the mortuary to be reboxed. Why? Because the mortal remains of a fine person had been converted to toxic waste, so people could look at the dead person before those remains went into the ground. Really.

What an insult to the soil. It angers me to think that my body may not in its own turn nourish the planet that sustained it. I want to be fertilizer. I should be fertilizer. Run me through a wood chipper, dump me out over the roots of an apple tree, and I promise you I will do my best to make those apples taste better than any others.

Cremation is less of an insult to our planet, I suppose, but it’s hardly carbon-neutral.

I was mighty happy the other day when after a high-fiber meal I had more time for Facebook than usual and I came across a link to this: What to do When You’re Dead: Science Edition. Here’s your chance to make the last thing you do something constructive. Apparently liquid nitrogen is better than a wood chipper. While less dramatic, I’m good with that choice. Note that launching yourself into space is not terribly environmentally sensitive, either, what with the rocket exhaust injected directly into the ozone layer. But it would be cool to be a meteor. With the proper preparation, your friends could watch you streak across the sky and vanish into nothingness. That would be a hell of a way to leave the building.

But whether you choose any of those alternatives or come up with one of your own, think about it: What do you want that last thing you do to say about you?

2

A Clockwork Octogenarian

I’ve been riding to work long enough now that I recognize a few of the faces I meet. One of those I see almost every day is an elderly woman. She seems healthy, if a little thinner than her doctor would no doubt prefer, but time takes its toll on even the best of us, and I would be quite surprised if she were less than eighty years old.

Each day I pass her going the other direction. Depending on how late I’m running, this takes place over a roughly five-mile stretch of my commute (she is much more punctual than I am). So it’s safe to conclude she rides east at least five miles every weekday. I think it’s safe to assume she also rides a similar distance the other way. That’s a nice, steady 50 miles or more each week.

While I have no knowledge of the reasons she bikes (for all I know she’s not allowed to drive anymore), it makes me happy to see her out there. I hope I’ll still be in the saddle thirty years hence.

2

Perfect Marketing

I’m sitting in a bar right now, pooping out NaNoWords, and Thursday Night Football is happening all around me. Another day I will tell you how I personally cursed the Oakland Raiders, and how I’m not sorry and you shouldn’t expect the curse to be lifted any time soon. But not tonight. This episode is about a television ad.

The product was Duluth Fire Hose Pants (or something like that). It was a simple animated affair where a guy in non-firehose pants gets his leg torn to shreds when he fails to catch a wild boar that someone offscreen threw to him. Butterfingers!

The scene is then reenacted with the man (who vaguely resembles Bret Favre) wearing the proper indestructible pants. The wild boar deflects harmlessly off his leg, and our firehose-pants-wearing pal picks the vicious animal up and sends it back.

I want those pants. Seriously. I want those pants – as long as they extend the indestructible ethic to the pockets.

2

Note to Pillsbury:

It’s time to revive Space Food Sticks.

2

A Fine Meal

There are few things better than fresh tomatoes straight from the garden. One of those better things is several different kinds of fresh tomatoes gracing your summertime entrée, all fresh-picked from within thirty feet of where your dinner plate is.

I didn’t count how many different kinds of tomato we had tonight; there are ten different varieties growing out in the back 40, but they’ve never all had ripe tomatoes at the same time. But tonight there were definitely several types represented, and they were all delicious.

When I was a kid I didn’t even know there were ten different kinds of tomato. The growing interest in pre-industrial versions of the food we eat is definitely a happy thing. And healthy, too.

3

1,000 Miles

I’ve had the new bike for a little less than three months, and thanks to modern technology I know that I’ve now pushed it along for one thousand miles. I’ve compiled a list of things I’ve (re-)learned during all those miles in the saddle. Some of them might even be mildly interesting.

  • When approaching a stop, think about what gear you want to be in when you start again. Once you’re not moving it’s too late to change.
  • The last ten feet of a climb can kill your momentum just as quickly as the first ten. Don’t let up your effort when you’re “almost there”.
  • Around here at least, if you demonstrate that you’re fully prepared to stop at the 4-way, most motorists will wave you through.
  • There’s something about BMW drivers, and it’s not something good.
  • Songs that match your pedaling cadence can get really stuck in your head.
  • Fatigue + excited little dog + speed bump = road rash
  • Combining the previous two: If you’re riding for an hour, and you have the “stuck on Band-Aids” jingle stuck in your head, there’s nothing to do but pray for the salvation of an ice cream truck playing ‘Little Brown Jug’
  • On flat terrain, 14 miles per hour isn’t measurably harder than 13, after the first few pumps. Knock it up a gear!
  • I’m getting callouses on my palms.
  • Go ahead, we’ll wait. Done? Good.
  • The two worst things: headwinds and garbage trucks. It is likely that at some point I will go on at length about these scourges.
  • On the way to work, I have the sun at my back and (usually) the wind in my face. On the way home, I have the sun at my back and (usually)… the wind in my face. I call shenanigans!
  • Tomorrow marks two months since I put gas in my car. I have biked to work rather than drive 47 times this summer. By the time you read this, it will probably be 48.
  • I’m lobbying for Apple to relocate its headquarters to Australia for the winter. Already not looking forward to short days and dark rides.
  • Biggest snub from a member of the Spandex Crowd: outside my building, by a guy who works at my company. Ignored me completely. I didn’t think we were allowed to hire jerks here.
  • While riding, I’ve been composing the BOMB manifesto. It was “Bearded Overweight Men on Bikes, but I think I’m changing it to Bearded Older Men on Bikes, because I might not always be the former, but there’s not much one can do about the latter. We will be a legion based on the ideals of Courtesy, Friendliness, and Brotherhood. We Are BOMB!
  • I get a lot of stupid ideas while riding.
  • I’ve lost about twelve pounds, but I suspect several pounds more of fat. My legs are still skinny, but there’s definitely more muscle on them now.
  • By next summer, I might be ready for that Kilimanjaro trip Buggy invited me on fifteen years ago.
  • Mondays aren’t so bad when you have a good ride on rested legs.

One thousand miles! Holy crap! I suspect the next thousand will go more quickly; my stamina is greatly improved. 150 miles in a week is no longer as crazy as it once seemed. Today I actually began to wonder how many miles I could expect on my tires before they were worn out. That’s not something I’ve had to worry about before.

As the novelty wears off, I might not write so many episodes about bicycling, but then again that’s when I have time to think about blog episodes. So, sorry in advance.

3

Esoteric Programming Languages

Most readers of this blog are probably familiar, at least by name, with some of the more common programming languages out there. This blog is brought to you courtesy of PHP, and then there are the seminal C and FORTRAN (after all these years, still king of the number-crunchers), the infamous COBOL, well-structured PASCAL, ground-breaking SmallTalk, Sun’s heavily-marketed Java and Microsoft’s counterploy C#, and newcomers like Ruby and Javascript.

There are a lot of computer languages. While there are some pretty striking differences between the above, they all have two things in common. They all involve controlling a computer by writing lines of code, and they were all invented to be useful.

There is another category of language that is not burdened by that second attribute. Useful? Pf. Not bound by the constraints of utility, the whole ‘lines of code’ thing often ceases to apply as well. These non-utile outliers fall under the general category of “esoteric language”, sometimes shortened (but not by me) to esolang.

While I have long been peripherally aware of this category of languages, in a small email discussion recently a friend of mine mentioned the language Brainfuck (sometimes written b****fuck to avoid offending people). Another member of the discussion linked to an amusing top-ten list of odd languages. I read the article and my brain started fizzing.

A programming language that is written as a musical score? Blocks of color that simultaneously convey quantity and program flow*? A program specifically designed to be as difficult as possible to write code in?

Some might ask, “why would anyone bother with such useless languages?” I don’t have an answer to that. I could go on about Befunge and the wire-cross theorem, or about Turing Completeness, but at the end of the day, I think it’s the same answer as one might give to the question “why does one bother writing poetry, when prose is so much clearer?”

Some of the languages are just for fun. INTERCAL (Compiler Language with No Pronounceable Acronym) set out with only one goal: to not be like any other language. For instance, since all coders have long been taught to avoid the GO TO command, INTERCAL instead uses COME FROM. And every now and then you have to say PLEASE. You don’t have to be a geek (but it helps) to enjoy this article about INTERCAL and Befunge (includes a Befunge program to generate Mandelbrot sets).

One can only read about esoteric languages for so long before one must scratch the itch and find a new way to write “Hello, World!” on a screen. I became intrigued by Befunge, a language that is not written as lines of code at all, but as a grid that a pointer moves around on, steered by >,<,^, and v characters. The program appealed to me for two key reasons: the characters the program cursor encounters can mean different things depending on which direction the cursor is moving at the time, and, even better, you can have the program alter itself by changing the characters in the playfield. So, here’s my Hello, World! in Befunge:


         095*0     v          0*59    <      
This 'Hello World' program is written  in Befunge, a
  language invented expressly to be as difficult to compile
  as possible.
 
 In fact, with this code, control flow  goes straight through
 this block of text and uses the p in  'program' as an instruction.

                                      +
v      g0*59       <                  1
     >                            "H",^
>:0-!|
v    <
     >                            "e",^
>:1-!|
v    <
                 > "0"+292*p >    "l",^
     > :6*9- :9`!|
>:2-!|           > $         ^
v    <
     > 7"0"+273*p                 "o",^
>:4-!|
v    <
     >                            " ",^
>:5-!|
v    <
     >                            "W",^
>:6-!|
v    <
     >                            "r",^
>:8-!|
v    <
       >                          "d",^
>:52*-!|
v      <

              v<
              " 
>:65+-        !|
              "
v  "error!"$   <
>:#,_         v

   restore the code to the starting state:
              > "2"292*p  "4"273*p @

Of course, it was absolutely required that the code alter itself at least once, and occasionally have the same symbol mean different things. This program is based on a counter, and when the counter is 0, it outputs an ‘H’. When the counter is at 1, out comes an ‘e’. ‘l’ is a little more complicated; after it matches the 2, the program does a little algebra (6x-9) to come up with 3, with which it then overwrites the 2 in the code. That way, on the next loop, when the counter is 3, we get another ‘l’, and the same equation replaces the 3 with a 9, ready for the ‘l’ in ‘World’.

In the language, ! means ‘not’. At the very bottom, this code evaluates the ! as ‘not’, which causes the program to loop around and pass through “!” (with quotes), turning what had been a program instruction into the exclamation point at the end of “Hello, World!” A nice little exclamation point on my program, as well.

I have now gone back and added an error message should something go wrong, but of course you have to alter the code to make an error actually happen, things being deterministic and whatnot.

You can watch the program execute in Super Slow-Mo with this Javascript Befunge interpreter. It’s kind of fun to watch the Instruction Pointer zip around the code. Paste the above code into the top box, click ‘show’, then click ‘slow’ below. I recommend setting the time to 50ms rather than the default 500.

Wooo! Big fun! While this language is nearly useless for actually accomplishing anything, I like the way you can make your code physically resemble the problem you are solving. A coworker mentioned writing a tic-tac-toe program with Befunge, and I immediately thought of building a program that is a grid of nine segments and the program alters the paths through the grid as moves are made. It would be awesome.

If I went back to college and majored in computer science, I could get credit for writing it.

In my wanderings, there was one program that completely blew my mind. You remember Brainfuck? There are only eight commands in that language, which makes it relatively simple to write an interpreter. An interpreter is a program that reads the code and executes the instructions as it encounters them, translating them from the (allegedly) human-friendly programming language into machine-friendly instructions for that particular processor. (Compilers do all the translating at once, before the program is executed, while interpreters do it on the fly.)

So here, ladies and gentlemen, is a Brainfuck interpreter, written in another esoteric language, Piet:

piet_bfi
(courtesy Danger Mouse — if I’m not mistaken, the inventor of Piet)

That picture right there? That’s a program, written in a Turing-complete language, that implements another Turing-complete language. (**)8-O (the sound you heard was my head exploding.)

______

* In Piet, you can write a program to calculate pi that is a circle.

4