Skip navigation

It’s trying to be Spring here in Connecticut. Whenever the temperature on that Celsius thermometer that blinks atop the Gengras car dealership sign on the way to work turns from negative to positive, you can feel the land struggling like a baby to wakefulness. Until now, each time, Mother Nature has spread her comforting white blanket back over baby and lulled it back to sleep.

Today the temperature was +3 instead of -3, and everywhere I looked, I could feel the life shrugging off the shrouds of melting snow.

I park on a city street in Hartford each morning because I don’t want to play corporate parking spot lotto, so I have a bit of a walk into work each day. Usually I plug myself into the radio (one of the advantages of having a non-iPod MP3 player: radio) and listen to NPR on the way, but the back and forth between Obama and Clinton bored me, so I just listened to the sharp-voiced birds arguing back and forth and thought how little evolution had changed us.

I must always resist the temptation to splash puddles, unless nobody is looking. Then, I splash. Why not? Wet socks are a small price to pay for a really good splash.

The buttons in the elevator were lit in the shape of a ‘Z’ Tetris block, turned on its side. A couple of weeks ago, they’d been in a vertical line, three buttons in a row. Someone came in and pressed a fourth right on top of it. I asked him if he’d intended to go to that floor, or if he just wanted to complete the line. He just laughed.

I think he probably ended up taking the stairs down a floor. I would have.

I like looking for good cellular automata patterns in elevator lights. One day I will enter the elevator and they will be lit in the shape of the famed Glider.

Glider in motion

Thinking about Tetris shapes reminds me of that old game, Pentominoes. That was one of the few things I really wanted when I was a teenager, and either Mom or Dad bought it for me; probably Mom. Dad liked it when I showed interest in math, but it was always Mom who did the buying. I still have the Othello set she bought me (which is, by the way, a fantastic thing in its own right to set up cellular automata). I have played that Othello game for years; through high school and college. I wrote a game based on it for Sony, made up a whole new algorithm to make it a respectable opponent, and it was sold as part of the Sony Magic Bag, a collection of small games for their Magic Link handheld computer.

I also wrote a version of Backgammon for it, but I guess I’ll talk about my love of Backgammon some other time.

Now I want to talk about the min-max algorithm I developed for Othello (well, Reversi, since Othello is copyrighted). But I doubt that would interest anyone. Except that I used some of the ideas there to try and solve the Shapeshifter puzzle in Neopets.

Shapeshifter is a fairly simple puzzle; given some random shapes, fit them into a grid so they fit exactly. Some may have to be stacked on others. There are a hundred levels, and the first five have obvious solutions. The next five you can figure out. In fact, people usually have no trouble for the first twenty five, though by then, they probably are using cut out shapes and the kitchen table. Did I mention they have to be placed in a certain order? And you can’t take back a move?

After that, you need a computer. And any programmer can write a program that can solve it to level 35. After THAT, you either need to bring in more than one computer and divide the problem up, or be really creative with pruning algorithms. I went in both directions but the problem was just consuming all my brain. I couldn’t think of anything else, so I had to put it aside.

I haven’t been on Neopets since, but Jazz was telling me my Neopet was dying, so I thought I would log in, feed little Spitefur, and maybe see if the six month break would give me enough insight to get to level 100.

I couldn’t, though, because they wanted my birthdate, and who knows what I put down for that? I usually just put down any old thing. So I’ve been in a back and forth with Neopets customer service about this. I don’t really care about the account, I just don’t want to have to start Shapeshifter from level 1 again.

Anyway, I found some emails from my Neopet telling me how much they had enjoyed a vacation holiday I had sent her on (sigh… don’t ask…), and that gave me the email address I had used to open the account, so, hopefully, I will be able to log in again tonight, as they will release the birth date I originally entered so I can log in.

Anyway, I wanted to talk about Pentominoes. This was a puzzle that contained every possible flat combination of 5 cubes. So you could have a line five cubes long, or four cubes long with the last cube placed on the side somewhere — and so on. They came fitted carefully into a box, and the challenge was to dump them out and fit them back in.

But the GAME was, trying to fit them into different shapes.

I’d first heard of Pentominoes in an Arthur C. Clarke book. “Imperial Earth”. In it, a teenage boy is sent from his colony on Saturn’s moon Titan, to Earth. I can’t remember why. I think the whole thing was an excuse for Clarke to write about what life might be like on a near-ish future Earth where technology had erased misery from the world.

Anyway, the kid played Pentominoes in the book, and Clarke went into great detail about the game and its solutions and what the game could teach you about math and topology and I was inspired by that (as by an earlier game both Dad and I had loved, Piet Hein’s “Soma“) to model it in Concord High’s aging PDP/8e microcomputer.

I did some basic work on the model there, but the computer just wasn’t powerful enough to handle the maths. When I went to St. Paul’s school for their summer program, their PDP/11 could handle it; solved it easily, actually. So I decided to devote the rest of the summer to a problem I had just not made much progress on at all at Concord High, a model for an AI that could sense its environment and find the best path to a goal through a room of obstacles.

This quickly went past my abilities, but I had made friends with a wargamer there, and he helped with some of the algorithms and by the time summer ended, I’d had a pretty decent algorithm for path seeking behavior.

My final project for the summer wasn’t that, though — it was a Tic Tac Toe program that taught itself how to play and then how to not lose. TTT is an easy game and you can learn how never to lose in about five minutes by yourself, and it takes even less time to program those rules into a computer. But figuring out how to tell a computer to figure out these rules for itself was more interesting, especially given the tools I had at the time. In a year I would have learned LISP and APL, but all I had at SPS was BASIC an no knowledge of lambda functions which would have made the whole thing trivial.

Ya know, I started talking about Spring and then about cellular automata and how it led me into a study of topology, math, algorithms and eventually into computer programming. So, I think I’ve taken today’s post about as far as I need to take it. If there’s one thing I have learned over the years, it’s how little people who are not me are interested in my obsessions with puzzles, math and algorithms.



  1. Reading the above, it just goes to show how little the life I lead today matches the kind of idyllic investigations into puzzles, algorithms and automata I really wanted to devote my life to.

    I guess life for me will just end up being a gargantuan disappointment all around.

  2. You determine how your life is going to be – if you’re disappointed, do something to change it. Nothing happens if you do nothing to effect change. And people with positive attitudes tend to attract positive things in their lives – it works the other way around too.

  3. I found a place online that sells Soma cubes and Pentominoes, but the Pentominoes puzzle comes in an 8×8 box. 12 shapes of 5 blocks each = 60 blocks. 8 x 8 = 64 blocks. Where did the extra blocks come from?

    I sent them an email asking.

    I also found a cool Vermont woodcrafting shop that makes wooden blocks and toys. Their Soma cubes were tinier than the plastic ones from the 70s, but the blocks and trucks and stuff were nice and will make good Christmas/birthday presents for Matthew, who should be old enough to use them by then.

    Wooden toys are aggressive and mean and drive plastic toys away.

  4. @Genjer — I was a lot smarter when I was a teenager, able to learn things very, very fast and handle concepts way beyond high school level. I was taking tutoring on number theory from one of my math teachers.

    And then I went to UNH, pressured by Dad to take on an EE major, in which I had zero interest, because he wanted me so badly to be an engineer. I did poorly on any class that didn’t have to do with logic theory, spent all my time writing programs that had nothing to do with school, and then I met Li and started working and there was no possible way to afford college any more and very little interest in pursuing EE anyway, and the administration said there was no room in the CS department for me (at that time, programming was all I was interested in).

    Nowadays, I’m a lot stupider, my brain feels so slow. I could feel it dying through the eighties and think I reached complete brain death around 2002, when I was absolutely at my nadir, completely miserable and entirely unable to think. It’s like “Flowers for Algernon” — all I could do was remember what it was like to think, but was unable to do it anymore.

    That’s when I tried to learn how to think again. Without the ease I had when I was young, when I could learn anything almost instantly. But there was a spark there, that I fanned. I cleaned up a little, tried to figure out what sort of work I could still do, even though I couldn’t think any longer. So I got into computer repair, and sometime in there I remembered how to program computers, so I started doing that again, and that led to my current job. Still pretty stupid, but you don’t need to be smart to program computers.

    I feel I missed a lot of opportunities when I was young that can never come again.

  5. You can do so much more if you want to, but I guess hearing that one more time isn’t going to change anything. So I’ll shut up. :o) New opportunities are available, but you have to create them by setting up an environment in which they can arrive and be recognized.

    Really, going to shut up now!! I like reading your blog, I don’t want it to go away.

  6. Well, the past is the past, there’s nothing anybody can do to change it. Start shaping your present and your future so that years down the line you don’t look back and continue to be disappointed with how your life has turned out.

  7. I *am* trying to make my life better. I am trying to teach myself how to write. It’s one thing I can do better now than when I was young, perhaps because I practice it more. I write all the time, so that if the time ever comes when I have something to say, the tools will all be ready to use.

    I know it’s too late to become a researcher, which (in retrospect) is the job I wanted, so I am trying to think of other things I could do. Andy will be leaving home soon and I will have space to think without the blaring of the TV and his video games which destroy thought. So do mine, of course, but I don’t play them as much as I used to.

    Hillary and Brian were urging me to go back to school to learn computer programming, which I pshawed because who wants to get a degree in boring monkey work like programming? It’s like getting special training in being a corporate drone, or getting a degree in washing machine operation. Getting a degree in programming at this stage would be like a turkey laying its neck on a stump and showing the axeman where to cut.

    Why the FUCK would I want to go to school to learn how to do something I already know how to do? For MONEY?

    That’s the stupidest reason in the world. My kids are grown, soon to be moved out, I will find something I WANT to do. This is the 21st century. Programming is a commodity, not valued at all, by anyone. If I weren’t sitting here, someone else would be.

  8. Pretty much any job is like that – if you weren’t doing it, somebody else would be. If you were a painter or something – that’s something only one person is going to paint a certain way and they aren’t interchangeable with somebody else. I think Hillary and Brian were just having your best interest at heart and encourage you to do something that will make you happy.

    Personally, I think you should focus on fun activities that would allow you to meet and interact with other people in your area. That way you’d have friends to hang out with while Andy is gone. I know it’s difficult for you, at first, to be around new people – but you’ll warm up to them and then become friends.

  9. The fact is, you can be a researcher. You don’t seem to be willing to do anything toward that end, though, like going to college. How does one become a researcher? One becomes a student and approaches her professor about research opportunities in the prof’s lab. Prof says awesome, cheap labor. Thus begins the start of the accumulation of the research resume, which leads into research jobs.

    So to my mind, that answers your “why the FUCK” question posed above. Also, you assume all classes have nothing to teach you. Well, why don’t you try to get a degree doing independent research, if you are so convinced? They give you course credit, and the course you sign up for is called “supervised study.” BUT I am sure you have a reason why this won’t work too!

  10. By the way, we didn’t urge you to “learn” computer programming. We urged you to get the degree in computer science. Last I checked, real computer science does not equate with learning to code — it doesn’t at any good school, anyway (like UConn, the one where you can take free courses). It’s algorithms and scaling and all the things your other posts claim to love. The degree in computer science should include all the things you love, plus it would be the easiest way for you to get a degree. If you don’t want that degree, check out operations research — all algorithms, all the time, very little programming. Just proofs.

    Just wanted to defend the recommendation — lest you really do believe we think you should work on “monkey work”.

    Bad day today???

  11. I’m too stupid to do that now. But there’s other things I can do that isn’t programming. Or at least isn’t as soul-deadening as working as a maintenance programmer on an internal website for an insurance company.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: