The Boston Diaries

The ongoing saga of a programmer who doesn't live in Boston, nor does he even like Boston, but yet named his weblog/journal “The Boston Diaries.”

Go figure.

Monday, Debtember 22, 2014

Reindeer Mark II

When Bunny's brother saw my attempt at a 3-D reindeer, he noticed that the wood grain was running perpendicular to the neck:

[Direction of the woodgrain; perpendicular to the neck]

and given that the neck might have been a bit thin, it's no wonder the neck snapped like it did (I think his exact words were “I need to give him a lesson on woodgrain direction!”).

So, that, the small size, and removing pieces as I cut, lead to a decapitated 3-D reindeer. But now that I'm finally on vacation from The Corporation, I felt it was time to tackle this project once more.

I printed the pattern 50% larger, left myself a bit more wood around the edges to work with, aligned the woodgrain so that it was parallel to the neck:

[Direction of the woodgrain; parallel to the neck]

and I did not immediately remove pieces as I cut. This time, the results were much better:

[Leg's okay, neck's good---looks like we don't have to shoot him]

Some careful sanding with fine sandpaper (220 grit) and we get one nice looking 3-D reindeer in time for Christmas.

[Unlike his sleighmate Rudolph, Blitzen isn't a lush]

(I should note that it's standing in front of a cutting board Bunny made as a gift for a friend, and both are sitting on some red velvet, just because).

Friday, Debtember 19, 2014

Content Forever

racter: a History

The name of the program is short for raconteur. The sophistication claimed for the program was likely exaggerated, as could be seen by investigation of the template system of text generation.

Moreover, template processing is sometimes included as a sub-feature of software packages like text editors, IDEs and relational database management systems.

The observable universe is one causal patch of a much larger unobservable universe; there are parts of the universe that cannot communicate with us yet.

If the universe is finite but unbounded, it is also possible that the universe is smaller than the observable universe. In this case, what we take to be very distant galaxies may actually be duplicate images of nearby galaxies, formed by light that has circumnavigated the universe. It is difficult to test this hypothesis experimentally because different images of a galaxy would show different eras in its history, and consequently might appear quite different. Bielewicz et al. claims to establish a lower bound of 27.9 gigaparsecs (91 billion light-years) on the diameter of the last scattering surface (since this is only a lower bound, the paper leaves open the possibility that the whole universe is much larger, even infinite). This value is based on matching-circle analysis of the WMAP 7 year data.

racter, a History

The epitome of the “ooh—shiny” style of writing, Content, Forever (link via Hacker News) culls Wikipedia for articles starting with a given topic and just follows the links.

I may have to keep an idea like this in mind for next year's NaNoGenMo.

Can't see the forest for the trees

While there are decorations about the Ft. Lauderdale Office of the Corporation, the only tree so far has been the one that somehow magically sprouted in my office:

[The only thing missing are a bunch of kids and a dog singing “Hark! The Herald Angels Sing.”]

But I would be remiss if I didn't also post pictures of the trees that have suddenly sprouted about Chez Boca. First, the main tree:

[My God!  It's full of lights!]

And then, because it was so cute, a much smaller tree sitting on a side table in the family room:

[Bet you didn't know pandas were also present in the manger.]

And, because Bunny knows I have an unhealthy fascination with aluminum Christmas trees, Bunny also decorated this aluminum tree in the front hall:

[In the 19th Century, this would have been worth more than its weight in gold.]

Hmm … I guess this means The Season™ is among us.

Sunday, Debtember 07, 2014

That which I have never done, should be easy, right?

When I saw this video on making a 3-D reindeer ornament on a scroll-saw, not only did I tell Bunny about it (she has a scroll-saw and she is very interested in making one of these) but I thought I might give it a try. The video made it look very easy, the cutting pattern is simple—what can be so hard about it? Never mind I've never done anything on a scoll-saw, it's easy, right?

Umm …

[It's carnage I tell ya!  Carnage!]


What you should end up with is some scrap pieces of wood (check), two more-or-less-flat reindeer profiles (check…ish) and one 3-D reindeer (Houston, we've had a problem). The reindeer on the left is a flat profile, but the neck was so thin that the only thing keeping the head on is the cutting pattern glued on the other side. The one on the right is another flat profile and technically, is successful (sans one missing antler—there should be four).

The poor reindeer in the middle though—that was supposed to be the 3-D ornament and well … the legs on the left side broke off at the “knee” (oddly enough, they were thicker than the ones on the right, which amazingly, did not break off) and the entire neck section is missing (go figure—I never found it).

The scoll-saw also took a bite out of my thumb nail.

[This also shows just how small the reindeer are.]

Fortunately, that was the only “injury” I sustained.

I did identify two things I could have done differently. One, if the pattern was about 50% larger, I might have been more successful, as the original pattern is quite small. Two, I should not have removed loose pieces as I was cutting (say, the chunk from around the antlers, or the chunks from around the leg area) as that would have provided some stability—towards the end I was very afraid that the vibrations from the scroll-saw was going to rip the legs and antlers right off.

Next time, I should do better.

[With some sanding, you can't even tell it was suppose to have four antlers]

But at least I got a flat reindeer ornament for my attempt.

Saturday, November 29, 2014


More and more Dorothy wondered how and why the great giants had ever submitted to become slaves of such skinny, languid masters …

One of the better turn of phrase from The Quantum Supposition of Oz

I'm done. I finished NaNoGenMo in only a few hours total of work. I decided against Racter vs. ELIZA because of the technical challenges. It's easy enough to find source code I can understand to some version of ELIZA, the same can't be said for Racter. The code I do have is nearly incomprehensible with no documentation other than the output of the program itself.

That in and of itself wouldn't be a show-stopper—I do have a running copy of Racter, but it's an MS-DOS executable that I have to run under an emulator, so piping the the output from ELIZA to Racter and back again is not a trivial problem that can be solved in the few remaining days left of NaNoGenMo. Pity, really, as the output would be most amusing to read.

So I fell back to the old stand-by—Markov chains. The input I used for the Markov chaining process (more on that below) was the entire works of Oz by L. Frank Baum. I can't say why I picked those, other than I had already downloaded them from Project Gutenberg some years ago and had them handy. And they are in the public domain, so anybody can butcher them.

Now a Markov chain is pretty straight-forward—I used an order-3 Markov chain. So you start with three words, say “the Wicked Witch.” That's your start, and you output that. Then you find each word that follows that phrase and count the number of times they occur:

Frequency of words following “the Wicked Witch”

And from there, you can calculate the precentage chance of a given word following “the Wicked Witch:”

Precentage chance of a given word following “the Wicked Witch”
wordchance of following

You then pick a word randomly, but based on the percentage chance (“of” is more likely than “came”) and say the choice is “of.” That's your next word you output. Now your three words are ”Wicked Witch of” and you do that process again and again until you get the desired number of words printed.

In my case, the initial words were three paragraph markers (¶) and the initial opening paragraphs that came out were:


CHAP . 17

The Shaggy Man laughed merrily .

" A prisoner is a captive , " replied Ozma , promptly .

" Just wonderful ! " declared the Lion , in a voice of horror .

" Oh , indeed ! " exclaimed the Pumpkinhead .

" I'd kick out with those long legs and large knees and feet . Below in the streets of the conquered city and the gardens and Rinkitink thought the best part of me then remaining . Moreover , there was little pleasure in talking with the goat they kept away from the others .

They now entered the great hall , his shaggy hat in his hands , was a big house , round , red cap held in place by means of its strings , securely around the Ork's neck , just where his belt was buckled . He rose into the air , for I can stand it if the others can . "

So Dorothy , who had gone on ahead , came bounding back to say that Dorothy and the Scarecrow and Ozma alone ; but Dorothy had been listening with interest to this conversation . Now she turned to her captives and said :

" Are you certain this is snow ? " she asked .

The Quantum Supposition of Oz

Yes, the spacing of the punctuation is a bit odd, and I'll get to that in a bit.

And the fact that I start with chapter 17 is a quirk of the Markov chaining process, as is the initial line of the novel, “THE WONDERFUL WIZARD OF OZ,” due to the initial three words selected (three paragraph markers).

Now, most of the time on this project was spent in two phases:

1. An initial editing of the Oz books from Project Gutenberg. I had to remove all the verbiage that didn't directly relate to the story. This included not only the text Project Gutenberg added, but Table of Contents and Introductions in each book, as well as page numbers and references to illustrations.

This was perhaps an hour or two of time—only one book had page numbers (thankfully, the other thirteen did not) and the text editor made light work of removing the image references. Most of the verbiage removed was located at the start and end of each book, so that was easy to cut.

2. Defining what a “word” was for the Markov chaning.


I spent more time on this than I did on the initial editing.

So, what is a word?

A quick answer is “letters surrounded by space.”

And that's good for about 95% of the words. But then you get stuff like “I'll” or “Dorothy's”. Then you expand the definition to “letters, with an embedded apostrophe, surrounded by space.” Then you come across “goin'” and you redefine yet again. Then you come across “Tik-tok” (a character in the story) or “Coo-ee-oh” and you redefine your definition yet again. Then you find “how-d” and “ye-do” and realize you need to handle “how-d'ye-do” and by now you realize you also missed “Dr.” and “Mr.” and “P. S.” and …

Yes, the definition of a “word” isn't quite so simple (oh, and then you come across entries like “No. 17”—sigh).

In the end, I defined a word as such (and in this order):

  1. A series of blank lines denotes a paragraph marker—¶.
  2. Punctuation (these two to avoid the dreaded “wall-of-text” you often get in generative text, but they're printed as words and thus, the odd spacing you see)
  3. --”—these designate an m-dash, a typographical punctuation mark
  4. Digits (but see below)
  5. “Mr.”
  6. “MR.”
  7. “Mrs.”
  8. “MRS.”
  9. “Dr.”
  10. “DR.”
  11. “P. S.” (and the variation “P.S.”)
  12. “T. E.” (and the variation “T.E.”—stands for “Thoroughly Educated”)
  13. “Gen.” (short for “General”)
  14. “No. ” followed by digits (no real reason for that—I just did it that way)
  15. “N. B.” (and the variation “N.B.”)
  16. “H.” (an initial)
  17. “M.” (an initial)
  18. “O.” (an initial)
  19. “Z.” (an initial)
  20. A few really complicated rules to catch “how-d'ye-do” but avoid making a word out of “me--please” (some context: “don't strike me–please don't”).

Then all that was left was to generate a few novels (about a minute or two) and pick one that at least starts off strong and there you have it, a novel.

Oh, and the code that generated this awful dreck, should you be interested.

Friday, November 28, 2014

How did I miss this?

It's November and aspiring writers are plugging away at their novels for National Novel Writing Month, or NaNoWriMo, an annual event that encourages people to churn out a 50,000-word book on deadline. But a hundred or so people are taking a very different approach to the challenge, writing computer programs that will write their texts for them. It's called NaNoGenMo, for National Novel Generation Month, and the results are a strange, often funny look at what automatic text generation can do.

Via Hacker News, The strange world of computer-generated novels | The Verge

National Novel Generation Month? No one told me about this! I did not receive the memo! Why was I not informed of this earlier?

I've attempted to do NaNoWriMo multiple times but I could never finish a novel, no matter how many times I attempted it.

But this? Write a computer program to do the dull boring bit of writing 50,000 words? That sounds more fun.

Okay, “fun” being a relative word here.

I've looked at some of the results and some of them are fantastic! Ten years ago I threatened to write a novel with 50,000 fictional words but this year—Liza Daly has done what I threatened and wrote a book with 50,000 fictional words—using potentially fictional alphabet to push it to 11.

Most of the submissions appear to be written using Markov chains (an algorithm that uses probability of word A to follow word(s) B to generate the text) and while it can produce some spellbinding wordsmithery—a story with the fascinating title of “The Case Of The IT. And Now I'll Be Too Late With A Murder Done On My Own Doorstep. Volume: 8” is a prime example, you have to read through a lot of dull and nonsensical prose to find the gems.

A better technique might be a more template driven system, such as the one used to generate The Policeman's Beard Is Half Constructed:

At all events my own essays and dissertations about love and its endless pain and perpetual pleasure will be known and understood by all of you who read this and talk or sing or chant about it to your worried friends or nervous enemies. Love is the question and the subject of this essay. We will commence with a question: does steak love lettuce? This quesion is implacably hard and inevitably difficult to answer. Here is a question: does an electron love a proton, or does it love a neutron? Here is a question: does a man love a woman or, to be specific and to be precise, does Bill love Diane? The interesting and critical response to this question is: no! He is obsessed and infatuated with her. He is loony and crazy about her. That is not the love of steak and lettuce, of electron and proton and neutron. This dissertation will show that the love of a man and a woman is not the love of steak and lettuce. Love is interesting to me and fascinating to you but it is painful to Bill and Diane. That is love!

But that requires quite a bit of work to write the templates that help to generate the text:

<text variables>
(redundancies explicitly added by Chamberlain, by repeating a text-variable type, apparently for camouflage)

<Intro phrase> my own (essays) about love and its (endless) pain and pleasure will be (understood) by all of you who read this and (talk) about it to your (<worried> <friends>). Love is the (subject) of this <essay>. We will <begin> with a question: does <meat> love <vegetable>? This quesion is (<implacably> <hard>) to answer. (Here is a question: does a man love a woman or, (to be specific), does <man> love <woman>?) The (interesting) response to this question is: no! (He is (infatuated) with her.) That is not the love (of <meat> and <vegeable>). This <essay> will show that the love of a man and a woman is not the love of <meat> and <vegetable>. Love is (interesting) to me and you but it is painful to <man> and <woman>. That is love!

Racter FAQ - Google Groups (Racter being the program that “wrote” The Policeman's Beard Is Half Constructed)

But it's still November. I have 2½ days to write a quick program and get my NaNoGenMo done! Hmm … perhaps I could hook Racter up to ELIZA

Hello. Please state your problem.
Excellent! Excuse me a minute while I attend to some business. I will be right back.
Why do you need to tell me excuse while you attend to some business?
Is it better to need or to despise? Why is it that I do need to tell you to excuse myself to attend to some business? Because electrons are brave. Braveness is nice, don't you think? And the needers all insist upon it. Do you imagine I am a Communist?

colorful personalities

Hmm … have to think on this …

Thursday, November 06, 2014

Be it ever so humble …

There's no place like home.

Tuesday, November 04, 2014

Extreme lawn ornaments, Asheville edition

While Asheville may not have life-sized cow lawn ornaments, it is trying with a Bigfoot lawn ornament.

[It would be even better if they had a lawn ornament of the Six Million Dollar Man fighting Sasquatch.]

Judy Collins rock, or something like that

Our plans to have lunch with an old friend of mine fell through, so we found ourselves with a day sans plans. Bunny suggested we just head west to see what we could find, and with that nudge, I remembered two locations west of Brevard that we could visit.

First up, The Carolina Smokehouse, a pit-BBQ restaurant in Cashiers, NC we visited a few years ago and liked. Since we were headed that way anyway, that was as good a place to have lunch as any place. If you find yourself in that neck of the woods, it's a good place to stop off for some good barbecue.

After lunch, we turned north to Judaculla Rock, a large stone with a huge number of petroglyphs carved into it—the most in a stone found anywhere east of the Mississippi.

[It's hard to make out the petroglyphs due to erosion but they're there, all 100 or so.]

Despite being the middle of nowhere, it was easy to find as it was well marked with signs leading to its location, although parking was nearly non-existant, as it was sitting off the side of a dead-end road leading to a private residence.

Judaculla was a Cherokee god of hunting, and one of the petroglyphs is supposedly of his hand when he jumped down from his mountain home and used the rock to steady his landing. Also, The Devil's Courthouse is also known as “Judaculla's Judgement Seat,” supposedly where he judged the courage or virtue of the Cherokee.

We then made sure to drive back before it got dark. It's thrilling enough to drive the hairpin turns to keep from slaming into or off of the cliffs (or oncoming traffic) in full daylight; night time driving would crank that up to eleven.

Tomorrow, we head back south to Chez Boca …

Obligatory Picture

[Don't hate me for my sock monkey headphones.]

Obligatory Links

Obligatory Miscellaneous

You have my permission to link freely to any entry here. Go ahead, I won't bite. I promise.

The dates are the permanent links to that day's entries (or entry, if there is only one entry). The titles are the permanent links to that entry only. The format for the links are simple: Start with the base link for this site:, then add the date you are interested in, say 2000/08/01, so that would make the final URL:

You can also specify the entire month by leaving off the day portion. You can even select an arbitrary portion of time.

You may also note subtle shading of the links and that's intentional: the “closer” the link is (relative to the page) the “brighter” it appears. It's an experiment in using color shading to denote the distance a link is from here. If you don't notice it, don't worry; it's not all that important.

It is assumed that every brand name, slogan, corporate name, symbol, design element, et cetera mentioned in these pages is a protected and/or trademarked entity, the sole property of its owner(s), and acknowledgement of this status is implied.

Copyright © 1999-2014 by Sean Conner. All Rights Reserved.

Listed on BlogShares