Conway’s Game of Life, In Go

About a week ago, I decided to implement Conway’s Game of Life in Go. There was no particular reason, other than that I was bored, I wanted to do something else with Go, and I had never tried to implement Life before.

For those who don’t know, Life is a zero-player “game” in which an ecosystem is seeded, and then plays out all by itself. Once begun, each generation follows these basic rules:

  1. Any live cell with fewer than two live neighbors dies, as if caused by under-population.
  2. Any live cell with two or three live neighbors lives on to the next generation.
  3. Any live cell with more than three live neighbors dies, as if by overcrowding.
  4. Any dead cell with exactly three live neighbors becomes a live cell, as if by reproduction.

That’s it. You start it up, and then sit back and watch for patterns to emerge. So far, I have a version that uses a portable curses-like library for console graphics. It runs on OSX, and should definitely run on Linux. The page for termbox-go says that it will run on Windows, but I haven’t tried it. I plan to build a “prettier” version using Gtk+, but that will take a little while, since I don’t know Gtk+ (yet!).

Here’s a screenshot of the current version running:

Screen Shot 2013-08-17 at 9.01.52 AM

If you want to see the code, it’s on github.

Picking the Bones At An Estate Sale

I just got back from an estate sale in my neighborhood. The people whose belongings were being sold were an elderly couple who lived just around the corner from me. I never met them, but I knew who they were. They both appeared to be quite old, but both were always working in their yard to keep it immaculate. They always had something blooming, no matter the season.

And now they’re gone. The gentleman passed away some time last year; I don’t know the details of his passing. The wife is still alive, but living in Texas in a “retirement community” near her daughter. I’m told she’s struggling with Alzheimer’s.

And so this weekend her family came to sell off everything that was left of their lives together, in order to get the house ready for sale. I don’t mean to cast aspersions on the family, as I know that these things have to be done, but while I was looking through what was left for sale, I got very sad. Scattered around were all sorts of bits and pieces of their lives that showed what they liked and what they liked to do. The wife, for example, apparently loved to quilt. She had what appeared to be about 30 – 40 years of quilting magazines in the basement. There were numerous pieces of cross-stitch and embroidery on a table, too.

It looked like the husband had been in telecom, as there were spools of wire and loads of antiquated telephone equipment in the basement. There was also a framed award from 1980 presented to him from his employer. One thing of interest to me was a booklet produced by the Travelers insurance company for their employees in 1972, detailing their policies on reimbursement for moving and living expenses. I don’t know which of them worked in insurance.

So what did I pick for myself? I have a thing for food photography from the 1950’s and 1960’s, and there was quite a collection there. I bought an almost-complete set of the Woman’s Day Encyclopedia of Cooking series from 1962; it’s missing the last three volumes. I also bought a 1972 edition of the standard Better Homes & Gardens cookbook (red and white checks) and a cookbook from 1974 called “Favorite Recipes of America’s Home Economics Teachers.” One non-cookbook also made it into my hands. It’s a book called “Papa Was a Preacher,” which was published in 1944. It’s a memoir of the youngest of six children of a rural minister. She wrote the book with the intention of dispelling the myth that being a minister’s child is a joyless existence. What was also neat about this book is that on the copyright page the publisher explained how “Wartime Books” were being printed in ways that conserved paper and copper for the war effort.

So why did this make me sad? I think it’s because these two people spent two lifetimes together collecting all this stuff. Now one is dead, the other can’t be far behind, and all of their things are being scattered in every direction. I know once you’re gone you can’t keep your stuff, and children don’t always want to keep the things of their parents, so I suppose selling it certainly beats throwing it away. Still… I felt sad and somewhat guilty to be picking through their lives.

Reminders of Chloe

Chloe’s been gone for three days now and I keep getting hit by reminders of her. I keep walking into various rooms of the house, expecting her to be there and then realizing that she can’t be. I look out in the back yard and know that she’ll never run and bark there again. About five minutes ago I opened a cabinet in the kitchen and saw the bag of dog treats, and now I’m sitting here fighting back tears. 

Damn, this is hard.

R.I.P. Chloe Gibson – You Were A Good Dog

 

Chloe Gibson, 1993 - 2008

Chloe Gibson, 1993 - 2008

Back in 1993 Tammy and I went to PetSmart one day to get some cat food. As we walked in, we noticed that they were doing dog adoptions, so we decided to go over and have a look. We were just looking. They had several cute dogs who all needed a home, but we already had two cats and that was enough. Until I came to the last crate. In it was a small, black Terrier-ish dog with big, brown eyes and an enormous pink bow around her neck. I opened the crate, just to pet her, and when I did, she literally lept into my arms and started licking my face. After a few seconds of this, I turned to look at Tammy through the glass; she was already filling out the adoption paperwork. 

As we talked to the people there (from Friends of Animals, BTW) it turned out that this dog was not supposed to be there that day. Some monster had slowed down on Hwy. 78 (7 lanes) and tossed this beautiful 6 month-old puppy out into traffic. Luckily, some other motorist saw what happened and was able to pick her up before she got hit. This person took her to PetSmart and the FoA people took her. That’s how we ended up with her. 

She was one of the sweetest creatures I’ve ever met. 

About six weeks ago, our vet diagnosed her with cancer. Her lymph nodes around her throat were expanding, and he told us that she had a month, maybe two, at the most. He gave us prednezone to help with the pain, but as old as she was, chemotherapy would most likely kill her. He said to just keep her comfortable.

She did OK for a while, but the last week or so, we could tell the end was near. Her tail didn’t wag as much, she didn’t always eat, and her breathing was getting more labored. Her nodes were so swollen that it felt like she had a bag of marbles under her throat. Getting her to take a pill was always hard, but it was doubly so now. When we could get the pills into her, she would generally have a good day, but not always. Tuesday, she had a great day. She actually played in the yard, nom-nomed her food like nobody’s business,  and generally seemed happy. But yesterday, we knew.

Or rather, we thought. It’s really hard to know when it’s time for that final trip to the vet.

Her breathing had been getting worse all day. She wasn’t resting. She would either walk around, or just stand, with her head pointing up, to make it easier to breathe. Last night around 10:30, Tammy and I talked about what to do, with Chloe just lying there, not really paying attention. She alternated between looking scared and looking totally out of it. We decided it was time.

I called Thomas into the room and told him that I had to take Chloe to the vet, and that she probably wasn’t going to be coming home. Understandably, he didn’t take it well. He’s had three cats, two fish and a snail die on him, and he wasn’t ready to have Chloe leave him, too. After he and Tammy were done saying goodbye, as done as they could be, I bundled Chloe up and took her to the emergency vet. 

After examining her for a couple of minutes, the vet told me that Chloe’s chest was full of fluid and that I probably knew what the answer was. I agreed, sadly, and ten minutes later our Chloe left us.

I believe that she is running, barking and chasing other dogs, cats and bunnies right now, in perfect health and happiness. I believe that after leaving my arms, she was soon met by our cats Nikki, Lukie and Abby, and that they are swapping slobber and stories and once again having a grand old time together. Thomas believes that, too, though it’s little consolation to him right now.

Goodbye, Chloe. We love you.

Bloody Hell, the Snail Died

I was wrong [cref another-day-another-fish-funeral about Pokey the snail]. He died today.

I ran ammonia and Ph tests on the tank water and was shocked by the results. The ammonia test was off the charts. The Ph was also out of whack. I took the filter housing off and scrubbed it with an old toothbrush because it had some slimy gunk in it. I also changed the filter and added some drops that are supposed to help. I put about two gallons of fresh water in a bucket and put the de-chlorinator in it, so tomorrow night I will replace some of the water in the tank. After this, we’ll be testing the water weekly to make sure this doesn’t happen again. 

Keeping fish is sure a lot of damn work.

Another Day, Another Fish Funeral

As I mentioned [cref fish-funeral two days ago], we had a goldfish die, buried him at sea, and then bought another fish and a snail to keep the remaining fish company. As Tuesday wore on, the new fish, Speedy, wasn’t looking so hot. He was hanging out near the bottom and just not doing much besides breathing, or whatever you call what fish do for oxygen. We took him out and put him in a bowl of water, just in case there was something in the tank that was affecting him. 

This morning, I went in to check on him.

And found him floating. Damn.

Fortunately, we’d been preparing Thomas yesterday that things may not go well, so he was somewhat prepared. It hasn’t affected him the way Fred’s passing did. And for that I’m grateful. We buried Speedy at sea, just like we did Fred.

I’m happy to report that Pokey the snail seems to be in fine form, as does our older fish, Rocky.

I went to the pet shop today and got some tests to run on the water to see if we have an ammonia or Ph problem, which I’ll be running tomorrow. We need to find out for certain if there’s something up with our tank water before we get another fish.

Fish Funeral

For Christmas, my sister-in-law gave my son two goldfish. Without asking us. Needless to say I was not happy about this, but he had them before we knew what was going on. Anyway, he’s been very happy with the fish and has been feeding them the right amount, and talking to them and making sure they were happy. All the nasty work, such as changing the filter, was handled by me.

So this morning, as I’m getting ready to leave the house, Thomas calls out “Dad! Fred’s stuck in the plants!” There are several decorative items in the aquarium and as I looked, I could see that Fred was indeed caught in one of the plants. And he wasn’t moving. I took the little net and tried to get him out. After he was free, he floated to the surface.

Graveyard dead.

Oh. Crap.

Thomas’ first question broke my heart: “What did I do wrong?” I tried to tell him that it was nothing he did. He did everything right. But sometimes, for reasons we can’t understand, things just die. We then explained the “traditional” method of burying fish: flushing them down the toilet. Tammy said a few words and then we committed Fred’s body to the deep.

I talked to him a little while ago, and he’s doing OK. They went to the pet store and got another fish, a fantail he named Speedy, and a snail, named Pokey. These two new additions will keep Rocky from getting lonely.

And I hope they stay alive for a long time… Please, O please, O please let them stay alive.

More Crappy Food In Snellville

Last night before I went bowling, I decided to get something to eat. I wracked my brain to come up with some place that I haven’t eaten at 900 times recently, and finally settled on Applebee’s on Hwy. 124. I was seated and after what seemed like about 5 minutes, the waitress finally came over. I ordered a Coke and the Crispy Orange Chicken Bowl, without the mushrooms. She responded, “I’ll see if they can pick them out for you. It’s a mix.” I responded that I have gotten the dish there before without mushrooms, so it shouldn’t be a problem. For the record, a better response would have been, “OK” rather than, “I’ll see if they can pick them out.” After placing my order I commenced to reading my book while waiting for my food to arrive.

After 10 minutes or so, the food arrived, but the chicken and broccoli pieces were too large to manage in the bowl, so I asked for a small plate to cut them up. As I started cutting the chicken, I noticed something: it was completely raw on the inside. Not just one piece, but all of it. I called the waitress over and showed it to her. She took it, but didn’t seem overly concerned. I asked for a manager. The manager came over and after I explained what happened, she expressed a modicum of concern, though not as much as she should have. She said, “I’ll have to check the grease temperature. Everything is on a timer.” Well, yeah. If your grease is not hot enough (or is laden with gunk) then your cook times will need to be longer. But since the kitchen staff at places like this doesn’t actually cook, they only warm things up and mix things, I guess expecting them to know that is asking a bit much.

Anyway, I told her that I didn’t have time for a reorder and I was just going to leave. She didn’t make me pay for my Coke, but didn’t offer anything else as a concession. Good management, there.

As I was leaving, I heard my name called. I turned and saw six of the people from my bowling league. I went over to talk and right as I walked up, one of them was calling for their waitress. Guess why. Her chicken was also raw! When I saw this, I said (rather loudly), “Hey! They gave you raw chicken, too!” I found out later that the manager didn’t even bother to come out to talk to them, nor did she take the raw chicken off the bill.

As it turns out, they got a 79 on their most-recent health inspection. I won’t be going back any time soon.

I Can Haz SSBB?

Oh, Yeah Oh yes, we haz it. Thomas has been playing for hours. I’ve played for an hour to two, myself. It’s very cool. We haven’t played online yet, but we’re working on it. Thomas and I have both created stages using the stage editor. I really like when you can customize a game.

Snellville Diner – Maybe Not…

There’s a new restaurant that’s opened up near us called the Snellville Diner. We keep saying, “We need to try the Snellville Diner,” but so far we haven’t gotten over there. And now, I don’t know if we ever will. They had a health inspection on Feb. 18 and they got a 29 out of 100!!! What the hell?!? How do you get 29 out of 100? Correction: how do you get a 29 out of 100 and stay open?

They had a follow-up inspection yesterday and this time they scored a stellar 62. From reading the inspection reports, not only were there problems from the first inspection that weren’t dealt with, there were new problems. Several of the problems dealt with not washing hands after hitting the restroom and improper handling of things like raw chicken and other things that are going to end up killing someone.

You can read the reports for yourself here. But the two egregious reports are

After the crappy BBQ place that was in that location before closed up, I was happy to see something new opening up. But if they are off to such an awful start, I doubt it’s going to last. I can tell you it’s going to take about 6 health inspections with 100’s on them before I’d be willing to try it.

Update: According to this article in the AJC, the Snellville Diner had a third inspection and received a 100. I’m still going to pass on trying this place, at least for a while. While you might be able to convince an inspector that everything is OK, continuing the proper practices long-term is what’s really important.