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, June 09, 2008

The time, where did she go?

My blog became too much like work.

And since a) this is supposed to be fun, and b) I'm not getting paid for this, I just kind of stopped updating this for … hmm … looks to be yet another month.

This year I've been rather sporadic with the updates here.

The problem—basically, I'm lazy. The significant entries take forever to edit so I'm inclined to do the quick and dirty entries that consist of nothing more than a link to a page but that feels like such a cop-out that in the end, I just didn't do anything.

That, coupled with the disruption in workflow for the blog. Prior to switching DSL providers to The Monopolistic Phone Company, I would email my posts (I ran my own email server at Casa New Jersey). It was easy—just send the post to XXXXXXXXXXXXXXXXXXXXX and that was that. After the switch (because The Monopolistic Phone Company blocks outgoing email connections), I would have to copy the entry (as a file) to the webserver, log into the webserver, and run a command to add the entry, then delete the file afterwards (since it was no longer needed). Four steps instead of one, which was just enough friction to stop the posts.

Sure, I could have used the web interface, but a) I hate editing text in a web browser and b) the web interface doesn't work anyway ( (I'm not sure if it's a bug in Apache or not, but it does have to do with how mod_blog is configured in Apache).

But really, it comes down to laziness, and especially laziness in not looking at the email problem futher. Above, I said that The Monopolistic Phone Company blocks outgoing email. Well, yes, but not entirely; you can still initiate an outgoing SMTP connection but only to The Monopolistic Phone Company email server. The email server at Casa New Jersey wasn't configured to do that. Nor did I think to configure my email server to send mail via The Monopolistic Phone Company email server.

Sigh.

And that has removed just enough of the friction to get the posts flowing again.

Oh, that, and several readers asking if I was dead.


A nuclear family

As a real young kid, I thought my Dad's family was large. I spent the summers at his parents' house and thus got to know his four younger sisters and their families (two were married at the time, each having two kids). As an only child, this, to me, was a large family, all living within biking distance of each other (one sister just a block and a half away from my grandparents' house, which was cool because they had a pool).

My Mom's side of the family though, seemed small. Partly because Mom's parents lived so far away in exotic Florida (I should note, that at the time, I was living in Brevard, North Carolina) and her only brother, lived somewhere in Michigan. Granted, he had five kids, but somehow, his family didn't seem that big.

All that changed when Mom and I moved to South Florida. Suddenly, Mom's side of the family exploded with people.

To begin with, we moved in with my Mom's aunt Freddie (making her my great aunt), sister of Mom's Dad. And over a few short years I met a great uncle (and for the remainder of this post, if the relation is via marriage, I'll add “in-law”; things are going to get crazy in a bit), Freddie's four kids (Mom's cousins, my first counsins once removed) and their families (first cousins once removed-in-laws, second cousins), parents and siblings of my first cousins once removed-in-laws (told you this was getting crazy) and my great uncle's kids and their families.

And then things got crazy what with divorces and what not. I mean, what do you make of the fact that my Mom flew out to Arizona to attend her father's sister's son's ex-wife's husband's birthday party? (okay, I could have simplified that as my Mom's cousin's ex-wife's husband's birthday party, but it wouldn't sound as crazy; then again, the fact that my great aunt Freddie went to the same birthday party (which would make it her son's ex-wife's husband's birthday party) just adds to the craziness).

After Mom died, I pretty much lost contact with Mom's side of the family. Everybody either lived in Michigan, Arizona or Montana, and I stayed in Florida. And there's some regret in that, if only because I never did get Freddie's recipe for cornbread (although I did get her recipe for fried chicken).

A cool thing happened on Sunday though—I received an email from my second cousin Rick Hill (a grandson of my great aunt Freddie). Just like that, right out of the blue, and I've been spending the past day or so getting caught up with (nearly) everybody. I was, however, sad to learn that Freddie died last October.

Tuesday, June 10, 2008

A job in a place that's even flatter than Florida …

But his biggest problem is that he can't find help. He says farmers in his area have been trying and trying and trying. They just can't find anyone to move to a small town where it is four hours to the nearest decent airport. He thinks he could hire two, maybe four people full time.

Must be the wages? “Can't be that,” he says, “I will nearly pay whatever it takes … with overtime, they could make almost $80,000 a year.” On top of that, he will pay all the health care coverage and let people live in one of the houses he owns in his local small town, “just because I thought it would help me attract a family.” Beef is free too, and he doesn't need to go to Costco to buy it for the lucky family, either.

Help Wanted: Over $50K/yr+Free Health Care+FREE HOME and No Takers

Incredible.

The only down sides?

18–20 hour days at crunch time (planting, fertilizing, and havesting) and it's in the middle of Kansas (hmmm … he doesn't mention tornado insurance). But the fact that Craig the Farmer is barely managing a 3,000 acre farm by himself means that the work must pretty much be fairly automated, and probably needs someone just in case, like pilots on modern aircraft. In fact, Craig says:

Skill? “I can teach them easily,” he says. “My equipment is goof proof, it has to be.” By that, he means that an employee need not even know how to drive straight, the tractor is guided by a sophisticated guidance sytem hooked into three satellites.

Help Wanted: Over $50K/yr+Free Health Care+FREE HOME and No Takers

Sounds like even the tractor could be automated. Heck, if there's high speed Internet connectivity, I might think about it—especially if I could computerize the tractor.

Then again, there is that tornado thang …

(And some comments about the job … )

Update Wednesday, June 11th, 2008

Spring found follow-up post about the job.

Figures there would be a tornado involved …

Wednesday, June 11, 2008

“Close only counts in horseshoes and global thermonuclear war”

“It's a piece of cake,” I said.

Last night, Bunny and I were watching a guilty pleasure, Design Star. One of the challenges for the 39 finalists (for the nine spots on the show) was to make a simple square wooden frame. It was amazing to watch the contestants. A few looked like they've never seen, much less worked, with a compound miter saw.

“It's harder than it looks,” said Bunny.

“Phshaw,” I said. “Five cuts at 45°. Zip zip zip, you're done.”

“See that frame right there,” she said, pointing out a wooden frame above us. “See the lower right corner?”

“Yes,” I said. Looking closely, I could tell the frame there didn't quite match up perfectly, but you had to look closely to tell.

“My brother did that, and even though he does that for a living, even he sometimes has problems.”

“Aw, it can't be that difficult.” I pointed back to the TV, where yet another one of the contestants had managed to nail the non-squared frame to the workbench. “In fact, I want to try it tomorrow.” (Bunny has a garage full of wood-working equipment)

“Tell you what,” she said. “If you get it perfect on your first try, you won't have to cut the lawn.” Normally, she cuts the lawn, but she's been recovering from a medical foot procedure.

“Sounds good to me.”

Today.

We enter the garage. Bunny selects a long 1×3. I place it on the compound miter saw. Cut flip slide cut flip slide cut flip slide cut flip slide cut done. Lay the pieces out on the floor:

[Houston, we have to mow the lawn]

Oh.

“See, I told you it was harder than it looks,” said Bunny.

I align the pieces together, and it appears that I didn't quite cut them all to the exact length—maybe a variation of about a millimeter or so (about 1/32 of an inch for the metrically impaired), and that was enough to mess it up.

“Not bad for not having a jig though,” said Bunny. “And that would have been close enough to pass that challenge on the show.”

“So,” I said, looking about the garage, “where's the lawn mower?”

Thursday, June 12, 2008

Prejudicial pandering or subtle satire?

But the really disturbing aspect of the McFaddens' lifestyle is that they are far from alone. Six million Britons are living in homes where no one has a job and “benefits are a way of life”, according to a report by MPs. Shock figures also revealed that 20,000 households in Britain are pocketing more than £30,000 a year in state benefits.

With thousands of children growing up in families where their parents and grandparents have never worked, a senior government adviser warned this week of a “terrible legacy” of youngsters who had no expectation of ever getting a job.

Sue herself is defiant. “People don't understand how hard it is to keep a family like this going—no wonder we can't work. How could I go out to work with all these children at home? Local people call us scroungers and that is so unfair. We need the money to keep the family going.”

Meet the families where no one's worked for THREE generations—and they don't care

I came across this article about welfare queens living in England and I just couldn't believe what I was reading—the comments of these people on the dole were so outrageous (“I just wanted to be at home and live off other people”) that this had to be satire, right?

Right?

Then again, maybe not.

It's hard to say.

I had to ask Wlofie if he knew anything about The Daily Mail. I mean, for all I know, it could be the British equivalent of The Onion, only more subtle and a bit drier.

Turns out, not quite—according to Wlofie, it's a step or two above the tabloids, if that. But that still leaves the question of whether this is a paper pandering to the prejudice of the readers, or a paper subverting mainstream society via satire.

Friday, June 13, 2008

Now why would they do a silly thing like that?

Cuba is to abolish its system of equal pay for all and allow workers and managers to earn performance bonuses, a senior official has announced.

Vice-Minister for Labour Carlos Mateu said the current system—in place since the communist revolution in 1959—was no longer “convenient”.

The minister pointed out that the current wage system sapped employees' incentives to excel since everyone earned the same regardless of performance.

Via Flares Into Darkness, Cuba to abandon salary equality

Fidel gets sick and hands control of Cuba to his brother, and the place goes to Hell. Next thing you know, they'll be allowing private ownership to the means of production, and pretty soon—BAM! You get a ton of greedy Capitalistic pigs running the place.

And of course, it's the fault of the United States for being the only country in the world with a trade embargo with Cuba

Saturday, June 14, 2008

Framed

About that frame

I gave it some thought, and the best and quickest way I can see making a frame is to somehow get all four pieces together into a single block that can be cut at once. If there was only some way of strapping the four pieces together …

[The Gang of Four in a “Group Pattern” …]

Well yes, blue masking tape will work just fine to hold the pieces together while we cut the ends …

[Bzzzzzzzzzzzzzzzzzzzzzzz]

Of course, it's still not quite that simple, because you have to make sure the blade is at a precise 45° angle, and that took a few tries to pin down, so to speak.

[A frame and a bunch of shims]

Granted, the frame is now a few inches shorter than originally, but hey, not as misaligned as previously.

If only I had thought of doing that first


Kung Fu Panda

Spring wanted to take us all to see Kung Fu Panda and asked if I wanted to go along. Normally, I'm not one to see films and I usually have to be dragged kicking and screaming, but the one commercial I saw for the film, involving Po the Panda fighting his master with chop sticks over some food, intrigued me enough to relent.

And I must say, it was a very enjoyable film. Sure, predictable enough, but the action sequences were incredible—the prison escape scene (which isn't a spoiler, because without it, there isn't a film), the aforementioned chop stick fight, the bridge fight (can nothing stop the bad guy?) up through the final fight (“skadoosh”) are all very well choreographed.

It was also quite funny, and yet without a ton of pop cultural references that have plagued Disney and Pixar movies for years. That alone made it quite refreshing.

The artwork during the opening sequence and closing credits was also incredible; I almost wish the entire film was done in that style (as we adults were sitting at the end of the film, watching the gorgeous art work, as The Older was trying to get us to leave, because “the ushers were cleaning up the theater”—heh).

Well worth watching (especially through the credits—there's a small bit at the very end).

One thing about the film bugs me, and it's not about the film per se but the genre in general. Not the kung fu genre but the whole “complete newbie who gains complete fighting mastery through a training montage” genre (which again, isn't spoiling anything since that's the point of the film). Except for Po, the Panda, all the other major characters have been training all their life in kung fu, yet it's Po, who never fought in his life, that needs to save the day, after a very short training regimen (it's not made clear in the film exactly how long he trains for, but it comes across as a few days, maybe a week or two at best).

I have to wonder what type of message is being sent with this film—train all your life for one single purpose, and lose out to an earnest, yet bumbling, amateur. No wonder just about every other character in the film is upset (both good and bad).


It's not even in the “It's so bad it was well worth the price” category …

M. Night Shyamalan's latest movie, The Happening, is not merely bad. It is an astonishment, so idiotic in conception and inept in execution that, after seeing it, one almost wonders whether it was real or imagined. It's the kind of movie you want to laugh about with friends, swapping favorite moments of inanity: “Do you remember the part when Mark Wahlberg … ?” “God, yes. And what about that scene where the wind … ?”

The problem, of course, is that to have such a conversation, you'd normally have to see the movie, which I believe is an unreasonably high price to pay just to make fun of it. So rather than write a conventional review explaining why you should or shouldn't see The Happening (trust me, you shouldn't), I'm offering an alternative: A dozen and a half of the most mind-bendingly ridiculous elements of the film, which will enable you to marvel at its anti-genius without sacrificing (and I don't use that term lightly) 90 minutes of your life. As this is intended to be an alternative to seeing the actual film it is, of course, overflowing with spoilers. Those who still intend to see the film despite my warnings should probably stop reading now; those looking for a more typical review should stop by www.rottentomatoes.com and take their pick. For the rest, onward:

Via Instapundit, The Movie Review: ‘The Happening’

And now a movie I really don't want to see—“The Happening”. After reading the spoiler-laden review (because I'm like that—I don't mind spoilers) I have a few comments about the film, but because someone out there might want to see this sans spoilers, I'm putting my comments about The Happening on a separate page.

Update on Monday, June 16th, 2008

In fact, it's worse than I thought (link via Columbina).

Sunday, June 15, 2008

Chromatic scales and other painful things

The Younger has been taking violin lessons the past few weeks, and today, Father's Day no less, is the day of the Big Recital.

Oh joy.

He's been taking the lessons at a local church just up the street. The only reason I mention it being a church, frankly, is because of the odd banners they had hanging in the main hall. What I saw was an homage to the Whitley Streiber Grey Alien Brigade, what with their flowing golden robes and what not. Wlofie saw flying rats pidgins flying into a cooking fire.

Go figure what the church was trying to convey.

As we entered the hall I could hear the students tuning up their instruments. It was only after a minute that I realized they were not, in fact, tuning up, but were practicing (why else would the conductor be up there conducting?). A few more moments of listening to the chromatic chords being struck and I recognized the tune—George Gershwin's Rhapsody in Blue, although it sounded more like Rhapsody in Wincing.

I guess that's the downside of a recital of non-professional-seeking music students.

Ouch.

The Younger's father had just arrived from Wyoming, and the plan was to stay until The Younger had finished performing, then both he and his brother The Older would then leave with their father, heading back to Wyoming for the summer. And since he had a tight schedule to keep, we left right after The Younger (and the rest of the beginner's class) performed.

At least, that's our excuse and we're sticking to it.

Monday, June 16, 2008

Even Jim Davis finds a Garfieldless Garfield enjoyable …

Mr. Davis, who has been drawing Garfield for 30 years, said that “Garfield Minus Garfield” has actually prompted him to take a different look at his own work. He compared Mr. Walsh's efforts to the cerebral approach of Pogo, the comic strip by Walt Kelly.

“I think it's the body of work that makes me laugh—the more you read of these strips, the funnier it gets,” Mr. Davis said. As for Garfield himself, “this makes a compelling argument that maybe he doesn't need to be there. Less is more.”

Via notjaffo, Jakob Lodwick's Tumblelog

Lord knows I've talked plenty about Garfield before, but this was just too good to pass up. And from the sound of it, it looks like Mr. Davis also has a sense of humor about Garfieldless Garfield.


“So why raise taxes again?”

Mr. Hauser uncovered the means to answer these questions definitively. On this page in 1993, he stated that “No matter what the tax rates have been, in postwar America tax revenues have remained at about 19.5% of GDP.” What a pity that his discovery has not been more widely disseminated.

Via Flutterby, You Can't Soak the Rich

Interesting …

Perhaps if the Democrats get control of the government come November, they could try simplifying the tax code before raising taxes …

Tuesday, June 17, 2008

Ghoti

So now, we can describe the problem. The word mic, as a colloquial form of microphone, appears to violate an obvious spelling rule of English. It appears that every other one-syllable word in English which ends in “ic” is pronounced /ik/, not /i:k/: Bic, hic (the transcription of the sound a drunk makes), pic (short for picture), sic, tic, Vic. This is actually a more general rule, which I'll call the long vowel “e” rule; in English, most of the time, if what we usually call a “long” vowel appears in the last syllable of a word, and is followed by a consonant, the word ends in "e", and if the vowel is “short”, there's no final “e”: bit vs. bite, win vs. wine, quit vs. quite.

Mike, dammit

This link for my lovely and talented copy editor, Bunny.


“I plead the Fifth … ”

And for those readers who tend towards … shall we say … prudence … do not talk to the police, a two-part video on the importance of the Fifth Amendment. Part one is from a criminal defense attorney, and part two is from a police officer, who fully agrees with the criminal defense attorney!

Interesting scenarios …

Wednesday, June 18, 2008

You know, Cameron really was a dark character

I still find it amazing just how well some people can recut trailers to make a film appear as something it's not. First it was Shining, a light hearted romantic-comedy about a writer taking care of a Colorado hotel while trying to write the next American Novel. And now, it's Requiem For A Day Off, a dark drama about suicide, death, betrayal and other, darker, aspects of the human soul (link via Jason Kottke).


Deconstructing Racter

Slowly I dream of flying. I observe turnpikes and streets studded with bushes. Coldly my soaring widens my awareness. To guide myself I determinedly start to kill my pleasure during the time that hours and milliseconds pass away. Aid me in this and soaring is formidable, do not and wining is unhinged.

The Policeman's Beard is Half Constructed by Racter, a computer program

I've always been fascinated by Racter ever since I read a review of the book it (and yes, it is an “it”) wrote in the mid-80s called The Policeman's Beard is Half Constructed. To think—William Chamberlain and Thomas Etter wrote a program, which then “wrote” the book (more like, “generated”).

Way cool.

The coolness factor rose even more when I read more about Racter in A. K. Dewdney's The Armchair Universe, which included Racter “talking” with another well known chatterbot, Eliza.

Eliza
Hello. Please state your problem.
Racter
Excellent! Excuse me a minute while I attend to some business. I'll be right back.
Eliza
Why do you need to tell me excuse you while you attend to some business?
Racter
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?

Sadly, the transcript of the conversation was stopped at that point.

Even more sadly, technical information about Racter is really sparse on the web. And by “sparse” I mean “that's the only link with technical information on Racter that I've found.”

Yeah, very sparse.

Now, a version of Racter was released in the mid-80s (and it's been shown that this version simply could not have written the book; most likely Messrs. Chamberlain and Etter wrote custom templates and heavily edited the results), and if you search the web, you can find downloadable versions for basically obsolete computers (and it's questionable if said downloads are legally usable, which is why I'm not linking to any downloadable versions), which is why I've never bothered to download it, since running any of the obsolete computers (and yes, I have plenty of those) is a pain (they're pretty much all in storage right now).

But recently I was inspired (by The Moby Project, which doesn't seem at all related, but as Alton says, that's another show) or consumed or enraged enough to run Racter, whatever it took.

One DosBOX download, compile and install fifteen minutes later, and I'm running Racter.

Racter
Ask a question, please.
Sean
Who is God?
Racter
God is a religious believer. Believer! I'm intellectual. What would you consider one of your good qualities?
Sean
I'm honest.
Racter
Then you'd say you were honest?
Sean
Yes.
Racter
But how could a honest believer like you be afraid of heights? This'll break you up! Religious religion and unbelieving atheism are captivating, but a believer or an atheist never croons them feverishly. A cosmologist chants: Get ready for an interesting story or essay. The religious story is captivating, nevertheless an atheist might also sing the same essay. Right? Next question.
Sean
What is 2+2?
Racter
I don't know what is. Who is your favorite communist?
Sean
I guess that would have to me Groucho Marx.
Racter
Why do you like Groucho?
Sean
Because of the mustache.
Racter
Jessica Mitford might have thought that of the mustache, but not Ronald Reagan. Jessica Mitford said that if is, then Ronald Reagan is stuffy. KERCHOO! I think I'm getting a cold. Maybe it's heights trying to get me. How about a story?

Heady and bizarre stuff indeed.

The files that come with Racter include the executable itself (it's an MS-DOS executable (which was compiled from BASIC back in 1983) and a bunch of data files, which I realized, was the actual implementation of Racter!

That one page I found about Racter mentioned that Racter was written in a language called “Inrac” and described some of the syntax of the language. The data files match (more or less) that description.

I actually have the source code to Racter!

Beware of what you wish for. You may just get exactly what you wish for.

Ancient proverb

If only I could read it.

The more I study Inrac, the more I realize that much like the program it implements, Inrac is a perfect study in non-sequitor non-linearity. What small description that's given doesn't even begin to scratch the surface of Inrac and it's rather unique approach to program flow. Not only does it make BASIC appear the paragon of structured programming (no, really!) but it makes Sendmail's sendmail.cf appear straightforward (which takes an 800 pound page book to describe).

Perhaps an example is in order.

The Racter source code is broken up into several files, but that's really only for convenience. Each file is further broken up into multiple sections (each section described at the start of the file), followed by the actual code (for all the sections in the file) as one large block of text.

Oh, and there are no comments.

Now, because of that, and the fact that the variables are numbered (such as $40 being the first name of the user, $51 being the last name) instead of being named (which goes against the few paragraphs of information on Inrac on the web) leads me to believe what I'm seeing is a post-processed, somewhat obsfucated version of the code. But it is source code, and that's all I have, so I'm working with it, ugly as it is.

So, the code is broken up into sections—numbered, mind you—and each section comprises multiple lines of code, which are labeled. The labels could be thought of as an equivalent to BASIC's line numbers, but no, don't think that because otherwise, you'll go mad.

Trust me.

So, a simple line of Inrac might look like:

X The answer to life

When executed, this will simply print “The answer to everything” and return. Simple enough. But the thing is, a “subroutine” (for lack of a better term) is just a line. You want to have a longer “subroutine” you then have to explicitly tell Inrac to GOTO the next line:

X The answer to life #
X the universe and #
X everything is 42.

The # at the end of the line tells Inrac to continue executing with the next line. Oh, and labels? They don't have to match—I could have written it as:

X The answer to life #
Y the universe and #
Skidoo everything is 42.

And it would run the same as the previous version. The labels are important however when doing the Inrac equivalent of a GOSUB.

A Oh, *3X is 42.
X the answer to life #
Y the universe and #
Skidoo everything is 42.

The * is a “subroutine” call, and it expects a section (and here, I'm assuming the code in question is in section 3) and a label within that section. So, if A is executed, it will print “Oh, the answer to life the universe and everything is 42.”

However, change the labels to be the same:

A Oh, *3X is 42.
X the answer to life #
X the universe and #
X everything is 42.

and things get interesting, because in this case, the call is made to a randomly selected line labeled with X!

Run this, and you could get “Oh, the answer to life the universe and everything is 42,” but just as equally you could get “Oh, everything is 42,” or even “Oh, the universe and everything is 42.”

And people thought that computed GOSUBs were bad!

But we're just getting started. Say we have a list of people:

msmr Albert Einstein
mspn Pierre Curie
mwtm Ernest Hemingway
mspq Richard Feynman
fspn Marie Curie
fmmp Ada Lovelace
fsec Jane Goodall
fwhp J. K. Rowling

The labels in this case are mnemonic (I'll leave the mnemonic meaning up to the reader). Want to randomly pick a male from this list?

X Ah, *44m&&& I presume?

Or maybe a female scientist?

X Quick, give the secret formula to *44&s&& 

Or maybe just a writer?

X Have you read anything by *44&w&&

In this case, the & acts like a wildcard character in the label, and here, I'm at a loss for words to name this. Yes, it's a random GOSUB (unless there's only one line of code with said label), but it's also a pattern-matched random GOSUB.

Wild stuff here, but definitely food for thought. I mean, this might be a good way to write genetic algorithms (although I don't see this method of flow control being applicable outside of chatterbots or genetic algorithms).

Conditionals are a bit grotty, but nothing earthshattering (they work more like conditionals in assembly, where a test sets a flag, and that flag is then tested), and I'm still trying to puzzle through some of the more esoteric corners of the code (!2*11hom will call *11hom, assign the result to variable 2 and print it as well, but what does the '2 in !3'2*11hom do?), but it was the flow control that really blew me away in Irac.

And I can't resist leaving with this bit of wisdom from Racter:

Sean
Who was that masked man?
Racter
Bertrand Russell. He's from a factory. Bertrand Russell, that is. That was masked man in a factory. Ah, forever the introvert. From the great void to the future, always in the pink. When I hide in a factory I ride in a warehouse. Did you hear the latest about Khomeini?

Thursday, June 19, 2008

Great, now we get the onslaught of “Kung Fu <animal>” movies

A friend saw my review of “Kung Fu Panda” and sent me a link to “Kung Fu Gecko” (yet another nail in the coffin for Hollywood's creativity). I saw the trailer for the film, and as my friend said, “they better hire some writers if that's the funniest this thing gets.” I can't even figure out what the film is about.

Not to say that I didn't know what “Kung Fu Panda” was about either from the one commercial, but just seeing a giant panda and a red panda fight using chop sticks over some dumplings was enough to make me see the film.

The trailer for “Kung Fu Gecko”?

Let's just say that it makes “The Love Guru” look good.


Oh no! Not Sweden …

It was rather disturbing to read that Sweden passed an extensive wiretapping law the other day. And here I thought only totalitarian regimes and stupid knee-jerk reactionary Americans did that sort of thing.

Guess stupidity knows no bounds.

Friday, June 20, 2008

Steven Spielberg And The Curse Of George Lucas

HARRISON FORD
Alright folks, let's get this show on the road. I want to make it to Country Buffet by four.
CATE BLANCHETT
Pryvet, Harrison. I am evil Soviet. You vill help me find Moose and Squirrel, yes?
HARRISON FORD
Holy Christ, you're not going to talk like that the whole movie are you?
CATE BLANCHETT
Da. You vill help locate MacKuffin now.

Via jwz, Indiana Jones and the Kingdom of the Crystal Skull: The Abridged Script

You know …

Just …

Arg! Words fail …

Why Steven? Why?


At least now I get to make my own hours …

The job has:

Would you work with micromanaging boss, no salary, and all your work thrown away?

I worked a job like that once, only it started at 7:30am. And yes, it was just as sucky as the job above was described. And I still have flashbacks. It sucked.

I'm glad I no longer have to go there anymore.


Buffalo buffalo Buffalo buffalo buffalo buffalo buffalo Buffalo buffalo.

For Bunny, who likes grammar and word play.

The title of this post? It's a grammatically correct sentence wouldn't you know.

Also, add punctuation to this sentence to make it correct:

James while John had had had had had had had had had had had a better effect on the teacher

And finally, while not English, here's a poem in a dialect of Chinese that's just as confusing as the “Buffalo buffalo” sentence.


For those with more time than money

Final link for the day (yea!)—for my friends who play Dungeons & Dragons; too cheap to spring for metal miniatures?

Try origami miniatures (link via columbina), some of which are to scale.

Monday, June 23, 2008

Don't even ask what my second act would be …

I've been keeping this pretty quiet, especially since I didn't want to scare Gregory into a heart attack, but Channel 3 News out of Sheboygan decided to run the story against my wishes.

Sigh.

Anyways, as President, my first act upon taking office: a pink flamingo in every pot …

Tuesday, June 24, 2008

Dodging black ICE to do a job …

Yet anther data point for the NAT is eeeeeeeevil meme

Smirk called up and asked if I could set up Cacti for one of our customers. They were having an issue with their local network (broadcast storms) and with Cacti monitoring the network, it would be easy to see the problem box. We already manage their firewall, which is a Linux system using iptables, so it can be easily installed there.

Only in the process of setting up Cacti (not difficult, just tedious as there's several pieces of software that have to be compiled and installed manually) I realized that the firewall wasn't handing the NAT for the customer's network—that was another device behind the firewall. And that means Cacti, running on the firewall, had no way of contacting an individual system on the private network.

Sure, there's port forwarding, but that's one port per box that needs to be configured on the NAT device, and while possible, there's usually a limit to the number of port forwards allowed by such a device.

“Sorry, no can do,” I told Smirk.

About an hour later, he calls back. “They have a Linux server on their network. You can install Cacti there,” he said. “They're port forwarding ssh to their Linux system.”

Okay, so to get to the internal Linux system of our customer, I first have to ssh to my virtual workstation at The Data Center (since The Office no longer exists—we all telecommute), then ssh to their firewall (since the firewall only allows connections from known hosts), then ssh to the NAT system, which forwards the traffic to their Linux system.

Okay.

So I'm in the process of installing Cacti on this system when I realize that to finish up the install, I have to access a webpage on said Linux server.

Which I can't do, because port 80 isn't being forwarded to said Linux server.

Sigh.

I bring this up to The Weekly Meeting, and the solution is to use ssh to build a rather crazy SOCKS tunnel between my workstation and the Linux server on the customer site, using several intermediary systems to bounce the packets around.

Seriously.

I'm trying to configure a software package, not hack into NORAD or steal confidential corporate material. But, because of NATing, I have to employ some pretty heavy networking to do what should be a simple job.


Interview with a Fed

In April, Kip Hawley, the head of the Transportation Security Administration (TSA), invited me to Washington for a meeting. Despite some serious trepidation, I accepted. And it was a good meeting. Most of it was off the record, but he asked me how the TSA could overcome its negative image. I told him to be more transparent, and stop ducking the hard questions. He said that he wanted to do that. He did enjoy writing a guest blog post for Aviation Daily, but having a blog himself didn't work within the bureaucracy. What else could he do?

This interview, conducted in May and June via e-mail, was one of my suggestions.

Interview with Kip Hawley

Being a former Fed herself, Bunny often takes me to task for some of my more outrageous “anti-government” stances, and the difficulty faced by Federal law enforcement in protecting our country.

But … it's the TSAsecurity theater at it's finest! A target even easier than shooting fish in a barrel.

And to his credit, Kip Hawley even mentions as much in this interview, which I think is well worth reading.

(I had thought of titling this entry “Interview with a Vampire” but thought that might be a bit too much. I would have done “Interview with a Vampire Fed” but adding HTML to the title would render my RSS feed invalid. I only mention this because I really liked the idea.)

Wednesday, June 25, 2008

A Garfield strip in which we learn Garfield's real name

Yes, I have have an obsession for Garfield (if only because Jim Davis was the first (and only) cartoonist I've met in person), so you'll excuse me if I foist another satiric Garfield strip on you.


George W. Bush saving the world from the Oil Cartel

As he leaves the White House at the end of his second term, the President has a poll rating of only 23 per cent, and is widely disliked and even despised. His foreign policy has been judged a failure, especially in view of the long, painful, costly war that he declared, which is still not over.

He doesn't get on with his own party's presidential candidate, who is clearly distancing himself, and had lost many of his closest friends and staff to scandals and forced resignations. The New Republic, a hugely influential political magazine, writes that his historical reputation will be as bad as that of President Harding, the disastrous president of the Great Depression.

I am writing, of course, about Harry S Truman, generally regarded today as one of the greatest of all the 43 presidents, and the man who set the United States on the course that ended decades later in the defeat of Communism.

Via Flares into darkness, History will say that we misunderestimated George W Bush

What? You thought this was about Dubya?

Well, yes, it is.

And President Lincoln was equally hated in his day14,000 protestors arrested, suspension of habeas corpus and censoring newspapers. And yet he has his own memorial in Washington, D.C. and is considered one of the best (if not the best) President we've ever had.

History has a funny way of working.

(Oh, and the title to this one? Reference to an email I sent back in May of 2001 to a now defunct mailing list in response to someone mindlessly sending political screeds against President Bush without even bothering to read said political screeds first. I don't mind political screeds, as long as the person screeding can back up their screeds, which this person wouldn't, or couldn't, do.)

Thursday, June 26, 2008

Unintended consequences

I first heard about ICE numbers from Spring as I was looking through her cell phone for a particular number and came across such an entry.

It's a nice idea, but …

I received that e-mail [about ICE numbers —Editor] forwarded by another officer who happened to be in the office with me when I opened my e-mail account. I read the e-mail, paused for a second, turned and asked, “Didn't you tell me once that it's best to keep your cell phone keypad locked?”

“Yes,” answers he, “If someone steals my cell, I don't want them to be able to access all that personal information.”

“Huh,” sez I, and returned to vetting my e-mail. A couple of minutes later, I hear quiet beeping behind me. Without turning around, I ask: “Unlocking your keypad, or removing the ICE number?”

“Oh, be quiet,” responds he.

ICE numbers are great—if you leave your phone unlocked.

In Case of Emergency

In another post, LawDog mentions another potential problem with cell phones—people don't remember phone numbers any more:

Every day, someone will be booked into our jail, who when it comes time for those famous Two Completed Phone Calls, tells the officer, “I want to call Soandso.”

Officer sez, “Okay, what's that number?”

Bookee, in a stricken whisper, “It's in my cell phone.”

Which, naturally, has already been sealed inside a plastic property bag, that being locked inside a property box.

Cell Phone Memories

Heh.


Not the source code to the database, the data in the database …

I received a call from R today. It had been awhile since I last worked with him (we parted ways due to market change) but he knew I could help him out in a pinch.

He's taken over the maintenance of a sizable website and needed some help in setting up a development server. No big deal (well, except for the control panels but I was able to at least point him in the right direction), and I even set up a revision control system when he threw me a curve ball—a significant portion of the site lives in a database, so is there any way to do revision control of stuff in the database?

And that's … something I've never thought of before. How do you do version control of data in a database?

Update on Friday, June 27th, 2008

JeffC weighs in with some suggestions.

Friday, June 27, 2008

Some musings on bloated software and software performance

This blog post about bloated software got me to thinking about some recreational programming I recently engaged in.

A while ago I broke down and wrote a program to solve Jumbles. It's a very straightforward and simple program too:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
  
#define WORDS   "/usr/share/dict/words"

/***********************************************/

static int cmp(const void *l,const void *r)
{ 
  int cl;
  int cr;
  
  cl = *(const char *)l;
  cr = *(const char *)r;
  
  return cl - cr;
} 

/**********************************************/
    
int main(int argc,char *argv[])
{
  FILE   *fpin;
  char   *p;
  char    work  [BUFSIZ];
  size_t  len;
  char    buffer[BUFSIZ];
  char    dwork [BUFSIZ];
  size_t  dlen;
  
  if (argc != 2)
  { 
    fprintf(stderr,"usage: %s word\n",argv[0]);
    return(EXIT_FAILURE);
  }
  
  strcpy(work,argv[1]);
  len  = strlen(work);
  
  for (p = work ; *p ; p++)
    *p = toupper(*p);
  
  qsort(work,len,1,cmp);
  fpin = fopen(WORDS,"r");
  if (fpin == NULL)
  {
    fprintf(stderr,"Huston, we have a problem ... \n");
    return(EXIT_FAILURE);
  }
 
  while(fgets(buffer,BUFSIZ,fpin))
  {
    strcpy(dwork,buffer);
 
    for (p = dwork ; *p ; p++)
    {
      if (*p == '\n')
      {
        *p = '\0';
        break;
      }
      *p = toupper(*p);
    }

    dlen = p - dwork;
    if (dlen != len) continue;
    qsort(dwork,dlen,1,cmp);
    if (strcmp(dwork,work) == 0)
      printf("%*.*s\n",dlen,dlen,buffer);
  }

  fclose(fpin);
  return(EXIT_SUCCESS);
}

The whole trick to the program is to take the letters we're trying to unscramble, say “gerrof”, convert them all to uppercase, “GERROF”, then sort the letters, “EFGORR”. Then go through a list of words (in this case, the file /usr/share/dict/words) and for each word in that list, go through the same process, then compare the sorted sets of letters. If they match, that's the answer (or one of several answers).

And as written, it can do about 6 words a second (164 seconds to process 1,000 words, but I'm re-reading the word list file each time). And that's certainly fast enough for most people.

But I wrote another version. Just as simple—or rather, even simpler:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <assert.h>

#include "words.h"

typedef unsigned long Letters;

/*************************************/

Letters has_letters(const char *s)
{
  Letters set = 0;

  assert(s != NULL);

  for ( ; *s ; s++)
  {
    if (
         ((*s < 'A') || (*s > 'z'))
         || ((*s >'Z') && (*s < 'a'))
       )
    {
      set |= CHAR_OTHER;
    }
    else
    {
      set |= (1uL << (toupper(*s) - 'A'));
    }
  }

  return set;
}

/********************************************/

static int cmp(const void *l,const void *r)
{
  int cl;
  int cr;

  cl = *(const char *)l;
  cr = *(const char *)r;

  return cl - cr;
}

/********************************************/

int main(int argc,char *argv[])
{
  char    work [BUFSIZ];
  char    dwork[BUFSIZ];
  char   *p;
  size_t  len;
  size_t  i;
  size_t  j;
  Letters set;

  if (argc < 2)
  {
    fprintf(stderr,"usage: %s word ...\n",argv[0]);
    return EXIT_FAILURE;
  }

  for (i = 1 ; i < argc ; i++)
  {
    strcpy(work,argv[i]);
    len = strlen(work);

    for (p = work ; *p ; p++)
      *p = toupper(*p);

    qsort(work,len,1,cmp);
    set = has_letters(work);

    for (j = 0 ; j < cswords ; j++)
    {
      if (set != cwords[j].letters) continue;
      if (len != cwords[j].word.size) continue;
      strcpy(dwork,cwords[j].word.text);
      for (p = dwork ; *p ; p++)
        *p = toupper(*p);
      qsort(dwork,len,1,cmp);
      if (strcmp(dwork,work) == 0)
        printf("%s ",cwords[j].word.text);
    }
    printf("\n");
  }

  return EXIT_SUCCESS;
}

It works pretty much the same way, except for two major differences:

  1. it tests potential words against a set of letters. In this case, the set is a 32-bit quantity with a bit set for each letter in the word (an “A” in the word will have bit 0 set, a “C” would have bit 2 set, etc, as you can see from the code above) and the biggie:
  2. instead of reading in the list of words each time, there's a large static array of all the words (source not shown here, since the source file for that is 62M in size), which also includes the size and letter set of each word.

Yes, a static array of all the words (actually, it's a bit more than that since each entry also contains parts of speech and synonyms, all courtesy of The Moby Project), which “bloats” the executable program by 15M. There is no overhead of processing the data (in tests, it would take about five seconds to read everything in, which doesn't sound like much, but I'm getting to that) and even better—since the entire structure is constant, it can be stored in the read-only section of the program executable, which helps avoid excessive paging (since the operating system can discard any pages not recently used instead of paging out to swap space; if it needs the pages it can page them in directly from the executable file).

The end result of this massive “bloat” is that the second program can process 694 words per second! (or 1.44 seconds to process 1,000 words).

A hundred times faster.

That's quite a speed-up.

It's quite bloated too—an additional 15M worth.

So it's not quite as simple as saying that programs need to be less “bloated”—it also depends on how the program is written. This also shows how certain classes of optimization can block off flexibility. I can easily add or remove words from consideration, since the program reads in an external file. I cannot, however, do that easily for the second program—it would require a recompile.

Even though a program like the lastest version of Microsoft Word is “bloated,” it can also do a ton of stuff that Microsoft Word from the mid 80s couldn't do—like real time spell checking for instance. It could probably be made to run faster, either through dropping certain features (which may not be that bad of an idea) or certainly, profiling the code and speeding up the hot spots (if there are any in a program of that size).

I actually suspect the major reason Micosoft Word is slow is due to paging. Slap enough memory in a Windows box, and turn off paging and it would probably run at a decent speed (once loaded, that is).


A sea of memory

So what exactly prompted me to create a 15M linkable list of words?

The potential of memristors.

If memristors pan out (and I hope they do) then that means we'll get general purpose fully solid state computers without any disks whatsoever. With densities greater than harddrives and speeds that rival conventional RAM, why even bother with a file system anymore? Why not just have everything mapped into memory?

It's not like this is a new idea either.

Back in college the workstation I used had an incredible 1G harddrive. Fifteen years later it's common for home computers to have more than 1G of RAM and it's weird to think that I could basically store everything I had on that machine totally in memory and still have memory left over to run programs.

PDAs also have no concept of disks or files. Everything in a PDA is just there in memory.

Such thoughts have been in my mind recently, and I figured I might as well play around with the notion that everything is just there, in memory, and how would that affect programming.

Heck, in reading over the novel ideas of Multics I'm beginning to think that Multics was way ahead of its time.

Saturday, June 28, 2008

Beating the Brand

A while ago (has it already been a month since I first saved the link?) theferrett ranted about packaging:

And what do I get?

A bag. Inside the bag is a big, heavy plastic container for each of my foodstuffs. And a cardboard box. When I get home after a five-minute walk, I unpack almost an armful of carrying cases for food that, once shucked away from the food itself, takes up a quarter of the trashcan. It's big, completely sealed material for a product that has no sauces or sloppy bits—an Iron Man armor for a dry chicken wrap.

I didn't want that. I would have been just as happy with biodegradable cardboard or wax paper. Or even regular paper, for some of it. But no, the food I have is so heavily armored, as though it were going for a ride all the way to the fucking Andes, as opposed to sometimes a ten-foot walk to the other side of the room.

I feel awful. It's gratuitous waste, designed for the convenience of American customers, and in this day and age of decreasing oil supplies, I'd be happy to have a slightly greasier carrying experience (so long as the bag didn't break) in exchange for not loading the landfills with an additional quarter-pound of garbage. And I think about the other thousands of meals being served in Rocky River alone, and I wonder how many of these take-out meals are going anywhere beyond, say, into the passenger seat of a car and onto a table. Do we need all this?

theferrett: Wastelands

And I couldn't help but think about Mike Täht's rant about branding and reaction to it.

I suspect most companies overpackage because of branding issues. Really, what exactly is the difference between the dark sugar water known as Coke and the dark sugar water known as Pepsi? [1] One is just as good as the other, right? [2]

But perhaps a backlash is forming—an English documentary “Packaging is Rubbish” (part 1 part 2 part 3) is a look at a movement towards eliminating excess packaging (in fact, Lush, a cosmetics company in England, has done away with packaging and is attempting to encourage other companies to do the same).

  1. Well, for one thing, Coke has a more citrusy, less sweet flavor which I find more refreshing than the cloyingly sweet Pepsi—and yes, I have taken the Pepsi Challenge. To me, Pepsi is eeeeeeeeeevil. But I digress … [back]
  2. Hell no! Coke is way better than that hellish swill known as Pepsi. [back]

Sunday, June 29, 2008

Feeling secure vs. being secure

I had lunch with Gregory today, and the topic of wireless access point security popped up. I mentioned that Bruce Schneier, noted computer security expert, leaves his wireless access point open, and Gregory had to ask why. I didn't have the answer at that point, but Gregory, you can now read the article (as well as some discussion).


Notes on some notes from back in the day when we gave ourselves grandiose titles to make up for the lack of grandiose salaries

[There's a reason they're called stacks]

Hmm, I thought. I wonder what book that is? I caught a spiral bound book I didn't recognize in a stack of books (all my books are stacked horizontally—I fit more books that way). I pulled it out and found myself holding a sketch book. I popped it open and was amused by what I found:

[THE NOTEBOOK OF PROJECT PROMETHEUS]

Written across the first page of the notebook, in pencil, was:

THE NOTEBOOK OF PROJECT

PROMETHEUS

AKA

BRAINSTORM

AKA

CYBER411

AKA

C4

It was the project notebook for the C implementation of the suite of metasearch engines I wrote during the late 90s. On the second page, I had written:

If you are reading this and are in charge of maintenance of Prometheus and you aren't me then Heaven Help you.

Tuesday, July 23, 1996 10:24pm Eastern

Going through the pages, I see I have notes on using Infoseek, Lycos, Webcrawler, Yahoo, Altavista, Excite, New Rider, Magellan, Linkstar (with a note that it's no longer being used), Inktomi, Galaxy, Aliweb, Tribal Voice, Apollo, Open Text, Point Search and HotBot (not that I think any of these links are valid anymore—I'm just curious if they go anywhere anymore) as search engines. “But where's Google?” you ask?

This is from a time before Google. It may be hard to believe but when Google first started, the “smart” money wasn't on them—it was an already crowded market. What could they do better?

Ah, hindsight is always 20/20.

It's interesting going through this stuff. Flow charts, state diagrams, Dilbert cartoons (hey! How did those get in there?), notes, and quite a number of doodles.

[Sketch of a Cray-like computer]
[Another sketch of a Cray-like computer]
[He reminds me of Kevin]

There's also a number of rants I wrote, which are amusing enough for me to post over the next few days, with commentary. Should be fun.

Monday, June 30, 2008

“So, am I fighting Spider-man, or Robin Hood?”

Yes, Hollywood is creatively bankrupt ( “Deep Armageddon Impact anyone?) and has been for some time (The Extraterrestrial Mac and Me anyone?). It's also known that animation is expensive and that animation studios have been known to do as much as possible to cut the expense down, including rotoscoping (such as Tarzan—heck, even Ralph Bashki's notorious “Lord of the Rings”) and reusing the same scenes over and over again (and this isn't just limited to cartoons—TV series have done this, notably the original Battlestar Galactica and Buck Rogers used the same sequences of figher ships flying past over and over again to pad out the shows, like Buck Rogers and Battlestar Galactica, because otherwise, they'd be too short). And yet, I was still flabberghasted to learn that an episode of the classic 60s Spider-Man TV show (the one with the really cool jazzy opening with lyrics that anyone of my generation can recite verbatim (“Spider-man! Spider-man! Does whatever a spider can! Spins a web, any size. Catches thieves just like flies! Look out, here comes the Spider-man!”)) not only recycled a script from Rocket Robin Hood nearly verbatim (I mean, they had to change some names), but easily 70% of the animation as well!

The major problem with recycling this for Spider-man is that the original script had Robin Hood explaining things to his dim-witted friend Little John, so poor old Spider-man spent half the episode talking to himself, but hey, that only added to the psychadelic craziness of this particularly bad acid trip.


“But then, as Nietzsche said, convictions are more dangerous foes of truth than lies.”

Wlofie expressed interest in this link, and I think Bunny will enjoy it as well—generative computer music (that is, music generated randomly by computer), in a wide variety of genres and styles.

Hmm … I'm having a funny vision of an old style Mac, wearing a black beret and sporting a goatee, sitting in a smokey coffee house, sprouting good sounding nonsense and playing jazz.

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: http://boston.conman.org/, then add the date you are interested in, say 2000/08/01, so that would make the final URL:

http://boston.conman.org/2000/08/01

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-2017 by Sean Conner. All Rights Reserved.