Saturday, May 30, 2009

Setters of the Stone more fun than I expected

When it comes to games, I'm biased against expansion sets and variations. We have Settlers of Catan, it's nice, it's simple, it's time-tested, people love it, I already know how to play it. Why would I want to play a variation?

Especially when the variants are bigbox games like Settlers of the Stone Age, which can cost as much as $50, though it looks like you can get it for more like $25 from Amazon.

But...we bumped into a copy at a Goodwill for practically nothing, and I have to say that the changes in this version of Settlers of Catan are pretty interesting. The big ones boil down to this:

  • No roads; instead, you build and move explorers. These guys can go anywhere, but it costs you resources to create them and to move them.
  • Instead of buying development cards to get random advantages, you pass through special spaces on the board with your explorer.
  • There are four technology ladders you participate in. Every turn you can purchase advances in these. At first these really put me off, but they're really simple.
  • Hexes become desert and stop producing resources. This is a huge difference. The permanent destruction of spaces means old settlements must be moved to new places However, the victory points for creating settlements don't go away, so the game introduces counters that you pick up when you build a new settlement.
  • There's no promotion of settlements to cities. Instead, there's one kind of settlement, a camp.
I'd say that the game is a bit more complicated than plain Settlers, but contains some very fun ideas. The game's rules cooperate to push you out of Africa, where you start out.

Friday, May 29, 2009

Someone decided this guy was the Zodiac killer, from afar

Today I am fascinated by this article from the Washington Monthly, Confessions of a Non-serial Killer, where a professor explains how some nut decided that he must be the Zodiac killer, and has been harassing him ever since, long-distance. The professor's name fit some initials that the nut had decided were significant.

Thursday, May 28, 2009

If you bought a caster board and you have failed to learn it

...then you should contact me, because I'd love to get a used caster board. It seems like the sort of thing people would buy and then not actually learn to use and then sell in a garage sale along with the roller blades.

Wednesday, May 27, 2009

I've got a battlesuit and you don't

I came up with this on Monday. It's the title for a video game. I imagine a game in which the player bounces around in a powered-armor suit with blasters and a short-range jet pack. You would buy the game because of it's name, mainly. Therefore I'm done with the creative part of this, anyone wanting to purchase the rights to design a game with this title can contact me.

Tuesday, May 26, 2009

The ravens: the poetic impulse

The seven ravens rode down from the tower on the hill on kameels of azure and scarlet, as bold as the breaking day that urged them on. From my perch atop the mill tower on Farnham street, I could see them leaving a dust trail in their haste. I marked the leader as he weaved through the scattering of travellers on the dirt road, then slowed as the road became cobbled near the town. 

I was working with my elf refugee setting, worrying about whether calling my races "elves" and "goblins" was problematic. They're pretty alien, not much like the traditional fantasy genre labels (I hope), and yet I am going for an inversion of stereotypes that doesn't make sense without the labels. So I'm sticking with the labels so far. But I experimented with using other names, and the first thing I came up with was Ravens and Skinks. 

The elves have some birdlike qualities, while the goblins have some reptile and amphibian ones, so that's where the labels come from; these labels at least evoke the right image. The text at the start of this post is an experiment at using these labels. I also tried simply taking a story and replacing the words "elf" and "goblin".

This was worth doing, but the main thing that came out of it was that the label "raven" is highly evocative for me, and apparently makes me want to write epic poetry.

I have no idea what happens to the ravens next, though. That's as far as I've gotten. 

Monday, May 25, 2009

Retyping a story from scratch

As I've mentioned, I've been doing an exercise where I daily retype chunks of an existing story by a known writer. I've found this to be enlightening and a good antidote to the tendency to just get absorbed in a good story when I'm trying to analyze it.

I'm considering applying this to editing, by retyping a story from scratch. 

It seems kind of crazy, having worked with a word processor for so long. I've had access to a computer since my first high-school essays, so I've rarely been forced to retype anything.  When I first used an Apple II when I was small, I even tried to make a simple text editor, before I quite knew what I wanted. 

I'm pretty willing to try other things, though. I often work with a paper notebook to generate new prose, and it surprises me how often people often comment on that. It's got lots of advantages: nothing is more portable, the save function is amazingly foolproof, and the lack of editing tools pushes you towards forward motion. It's a different process, and that's a good tool to have. 

At the same time, I credit the word processor and the computer for first making me believe that it might be possible to create something so labor-intensive as a novel. The idea of retyping every last thing to fix a simple typo would be maddening.

But editing can be a crutch. Sometimes you need to start over. I'm working on a rewrite of a very old story and I feel like every word needs a good hard look; retyping it from scratch might be the best thing for it, if I'm willing to commit the time. 

Sunday, May 24, 2009

Chloe paddles upstream

Yesterday Tanya went to run some errands and I stayed home feeling blah with allergies. Chloe was off at a Dragon Dance performance. 

She returned determined to build an oar.

I just wanted to take a nap, but I had Chloe coming up to me every five minutes. 
'Can I use this plastic container for my oar?' 'Can I use this metal rod'?

She knew she was going to swim at her grandfather's apartment the next day, she had a new inflatable raft, and she wanted an oar to propel it.

I decided I could either yell at her until she cried, or get up out of my chair and help her out. I found a piece of thin plywood, she drew an oval shape on it, and I cut it out with the scroll saw. Then we cut a broom handle down and nailed the wood to it.

I wanted to cut a slit in the broom handle to hold the ply, drill holes, and bolt through that, but neither of us had the patience for it and my hand saw wouldn't cut a thick enough slit, so we just nailed it on. I dunno whether it'll hold. 

We spray painted it silver, because silver and black were the only spray colors I could find.

This reminds me of the many things I made as a kid from scrap wood I found around the house, and how firmly I believed all such scraps were free for the taking. Now when my kids go hunting, I have to fight my own proprietary feelings for my scraps.  

Saturday, May 23, 2009

Saw the tiniest fawn yesterday when biking to work

I couldn't believe how small this fawn was. No more than 18 inches tall. I saw it stepping carefully along on stilt-legs, and was able to creep within 3 feet to photograph it. No angry mother appeared.

Pocket wifi router uses cell signal and battery

Here's an interesting piece of tech: a router (NY Times article) that gets signal from the cellular network, and can sit in your pocket, giving you wifi access wherever you want to sit with your laptop, and without a card protruding from your laptop or dangling off of a cable.

Friday, May 22, 2009

Chloe makes a needle-felted elephant

I liked this tiny elephant that Chloe made. His body and head are kind of all one ball of fluff.

Thursday, May 21, 2009

London shop photos as cards

I made some cards from photos from the London Shop Fronts blog.

Wednesday, May 20, 2009

My kids holding my new niece

Brand new progeny from my sister.

Tuesday, May 19, 2009

Bogus trends in the news

This article from Slate talks about news pieces touting a trend towards backyard chicken raising, and in the process mentions the general news tendency to make up trends. I've been thinking abou this lately....every now and then I'll read an article that gets me hot and bothered; I remember one about parents paying for their teens' plastic surgery or something. It was in reading that one that I realized I was getting upset over a bogus report with no statistical backing, and I was reminded of the process back when I worked news (disclaimer, my experience is all from The Daily Texan; an excellent college daily, but I don't want to seem liking I'm claiming pro newspaper experience).

It only takes a few quotes to make a story, so if you can get a few people to say things to support your thesis, you can get your thesis out there. The news story structure slightly obscures the fact that the writer HAS a thesis behind the article. We should remember it.

Blogging is good for the writing, and yet that's somehow not obvious

The more I blog, the more I work on my other wrtiting, and vice versa. So I dunno, maybe it's just that the urge is the same. But I feel like when I do a little blogging it's a good warmup to work on the fiction, even the fiction that might seem tough that day. 

But there's something missing from the blogging urge. It's not stable, not reliable. I'll get inspired for a month or so to blog all the time, and then that will fade when I realize I'm not seeing a lot of readers. And yet that's not rational -- I get a lot out of the blog, even if it's only friends reading it -- every comment matters, the ongoing conversation is helpful and fun. 

And why should the blog draw me less than the fiction, when much of the fiction has yet to be read by anyone at all? 

Meh, even if it just means I don't have to email my kids' photos all over creation, it's doing the world a service. 

I keep coming back to the fact that even if there aren't many readers, the act of trying to write in the blog makes my thoughts more coherant than they are in my journal. And I tend to jot things down in my journal and write more lengthy blog posts later, sometimes much later, and I think that process is a great one. 

Monday, May 18, 2009

Stupid editing trick with search and replace

So here's one of my favorite editing tricks, for assessing the use of a term throughout a document.

Do a global search and replace on the word, replacing it with a highlighted version. By highlight, I just mean surround it with some characters that stand out.

For example, I had noticed that the story I was working on had lots of uses of the word 'but'...lots of sentences like ", but". So I replaced 'but' with [[__but__]].

Review the document, either searching for the word or scanning it visually. For each case, if the usage is okay, edit it back to normal. If not, rewrite.

The virtue here is that you can stop at any time and go back and find the instances you haven't reviewed yet. And by choosing a unique string, you can easily globally change things back.

If you screw up and convert 'buttress' to [[__but__]]tress, you'll see that. When you think you're done, search on the unique string to make sure you didn't miss any.

If you use a tool like grep or the Emacs occur command, you can get a list of all the lines that contain your unique term.

Start Emacs with Several Files Open

I like to log notes in several text files while I work, and I hate having to browse around the file system to get them all loaded. So I keep a batch file around to start the files I'm going to need every day. This is really simple and obvious but I find it ridiculously handy.

The runemacs.bat script that comes with Windows Emacs installations will take multiple files as command-line parameters. This is only relevant to Windows, although I'm sure you could do this in a shell script on other platforms.

So, I create batch files that have lines like this:


although you can also do


if the files are not in the same folder.

Sunday, May 17, 2009

Still retyping "Craphound"

I'm still enjoying my project of retyping Cory Doctorow's short story Craphound. The fact that he made this story available as a text file makes it easy to analyze. And I enjoy rereading the story. In fact, the hard thing is to not get caught up in the story when I'm trying to just type a paragraph.

I'm typing notes and ideas about it right into my file. As is my habit, I preface notes with xxx, so that they can be found easily later. And I'm putting them on separate lines; they can easily be grepped out later, too. 

So I guess I just want to recommend this sort of project. You might not think retyping someone else's story is worthwhile. But it forces you to look at the text carefully, and I'm learning a lot. I'm interested in how Doctorow breaks up the story into scenes and sequels, and gratified to learn that he does seem to be using that structure, a la Dwight V. Swain's Techniques of the Selling Writer

Another view of the Alamo

I bet this sort of thing is old hat for the historically minded, but given how much hoorah we make of the Alamo here in Texas, it's instructive to read this Straight Dope take on the event.

In this version, the Mexicans took such heavy losses only because of really bad leadership, and nobody comes out looking good. Meanwhile the defenders were disorganized, had not stored enough food for a siege, and didn't have enough men to defend the fort, which was "of little strategic value" anyway.

Do any wargames allow an Alamo? Suppose you set up a site that has emotional significance but doesn't cost you many resources, and it gets toasted. You could get morale bonuses later. I'm not aware of any games that do this, but I'd love to hear about one.

Saturday, May 16, 2009

I've thrown the comment doors open

I've made this blog open to any commenter. You no longer need to log in to make a comment.

Speeding up the submission process

I only recently tried a few e-mail submissions. I had a poem that I submitted via e-mail to an online magazine. I got a rejection 22 days later. That's a pretty fast turnaround there. But then I sent the poem out to the next market on my list, and it only took me about 5 minutes to review their guidelines and send them an e-mail. No making a printout, labeling an envelope, weighing the's just done. Compared to a paper submission, it was super painless.

The other thing I've done that has helped me conquer the get-a-story-back-and-let-it-sit-in-your-files-festering problem, has been to choose the next market for a story right after I send it out. Before, I was trying to generate lists of five markets for a story, and that was tough. Now I just worry about choosing what the very next venue will be, so that when I get the story back, I can send it right out. I'm accumulating submissions, at least....I've done 11 this year so far.

Friday, May 15, 2009

People of color in scifi and fantasy

Metafilter made me aware today of this essay ("Shame," by Pam Noles) about the dearth of people of color in sci-fi and fantasy fiction. It's not new, it's from 2006.

The essay hangs its narrative around the transformation of Ursula K. Leguin's Earthsea stories into whitewash when they were made into a movie. The characters were all shifted towards the white end of the scale, the author says. 

But I can't judge that because I never noticed that the characters were anything but white, and I reread most of those books in the last year. I knew I was white ... you know, in the pejorative sense of someone clueless about the issues involved in color ... but I didn't know I was that white. 

I'm not saying I thought the characters were white. I just wasn't conscious of their race. And to some degree LeGuin did that on purpose (here are her comments on the situation). But you know, only whites get to ignore race. I hate to realize I did that. 

Which isn't to say that you shouldn't read LeGuin. If you haven't, drop the blog right now and get to your library. 

I could develop mental powers, if I could resist daytime TV

I believe that if I could practice ignoring daytime television in a doctor's office just once a day for, say, a year, I would soon develop powers of telekinesis sufficient to turn off any TV with my mind alone. 

This week I was treated to some of Cristina's Court (the case was about some couple whose dream wedding was ruined because their limo lacked air conditioning) and Divorce Court ("I know for a fact she was sleeping with my brother!" "Oh you know it for a fact, do you?"). I'll never get those IQ points back. 

Wikipedia tells me that Cristina Perez is a celebrated hispanic judge and that she made the move from Telemundo to English-language TV. Probably she is a huge milestone in the TV judge world. However, I'm hypnotized by the way the cut scenes show her long, wavy hair....waving. 

But mainly I was bothered by how the announcer was trying to make drama out of a loss of air conditioning. "They got hot and bothered for all the wrong reasons." 

Thursday, May 14, 2009

Lily throws momma on the train

Family friend Marie took Lily to the train station day before yesterday to see Mom off to visit my new niece and help out my sister....and got this photo, among others.

I couldn't tell you what's different

Writing...resolve...faltering! I'm reduced to setting timers for myself in 30 minute increments. I can't tell you what's different about this month over last month, either. Maybe it's because I'm working on fixing a mostly-done story, and editing is less fun? I'm trying to make myself finish this revision of the story before I go on to something else, part of a general discipline thing. But it's taking longer than I'd like. 

Wednesday, May 13, 2009

More and more I realize we have a great neighborhood for biking

I biked to pick up my youngest from preschool on Monday, taking her home in a two-wheeled trailer. Then I dropped off a DVD to a Redbox kiosk at the Walgreens. I bike to the Walgreens a lot, it's an easy ride, as is the library. We also have a convenience store and several restaurants within easy ride distance. I've biked to go get a blood test for my physical, because there's a testing center over on Duval by highway 183, probably less than three miles away. And last week I twice dropped off my car at a place across the highway from work, and biked from there to work.

Last month I met some friends for lunch at the Arboretum, maybe 4 miles away...that was the longest mid-workday ride I've attempted, but it meant I could meet folks for lunch and not give up that avenue for socializing for my obsession with biking to work. I'm tempted to bike over to meet my son for lunch one day, but that's a decent slog, with a huge hill as part of it.

Tuesday, May 12, 2009

Sandman Mystery Theatre

I've been enjoying volumes of  Vertigo's Sandman Mystery Theatre, by Matt Wagner of Mage fame. I didn't know anything about it till I picked up a couple of volumes from my new best friend, the Wells Branch Community Library, which has a great selection of graphic novels. 

I have to ruefully admit that I thought these had something to do with Neil Gaiman's Sandman series when I picked them up. Instead of being about mythological characters, though, these are about a pulp-era crimefighter who uses a gun that fires sleeping gas, and wears a gas mask. I knew this character existed, but not much else; it turns out that this is a very old DC character who was resurrected in 1993 for this series. 

What's charming about the series is the fact that it's set in the 1930s, the art suits the story well, and the main character spends a lot of time worrying about his relationship with his girlfriend and maintaining that while crimefighting. The characters are none of them the buff figures of superhero comicdom, and I like that as well.  

Monday, May 11, 2009

I'm an uncle!

My sister had her baby on Friday. A new girl Link joins the world. I don't know how my kids will deal with not being the only grandbabies in our branch of the family tree, but we'll cope. We're doing our part by sending Tanya up to help out. Which means I'll be solo dad for a few days. Probably means I'll watch a lot less TV, and the kids will watch more. 

Arduino LED control with potentiometer

Some friends were nice enough to give me a Fry's gift card for my birthday. I hate how Fry's is always tempting you in the door with prices that turn out to be based on mail-back rebates that don't always go your way. But this card was a godsend when I needed more components to use to play with my Arduino board. So I got a couple of potentiometers and some LEDs and resistors and I'm in business.

That same evening, I wired up 4 resistors and a potentiometer on the breadboard. I had each led connected to a different digital IO pin -- pins 9-12 -- and the pot is on analog pin 2.

Then I wrote some code that works like this:

- It turns off all the LEDS
- It reads the pot value (range of 0 to 1023)
- If the pot value is more than 0, it lights LED1.
- If the value is more than 1/4 the total, it lights LED2. More than half, light LED3; more than 3/4, light LED4.

The result is a gadget that shows between one and four LEDs lit, depending on how far you dial the potentiometer. That's no big deal, the important part is that I was, that same evening, able to demonstrate using the pot to control something.

Here's the code I used. I'm also sending the pot value back to the computer through the serial link, but I'm doing something wrong there, it's getting random characters....I haven't figured out how to properly convert the int value from the pot into a string. I'm realizing now that the Arduino/Processing language is basically C, and C has lousy built-in string support, and I'm used to scripting languages that are good at strings. Of course, an Arduino doesn't even do floating point arithmetic; it makes sense to keep the code simple and low-level for its purposes.

/* Several LEDS
light, and control, several leds

1. Make 4 leds blink in alternation
2. Read ANY value via serial, from ARD
3. Hook up a pot, read its value

made from Blink without Delay
* Turns on and off a light emitting diode(LED) connected to a digital
* pin, without using the delay() function. This means that other code
* can run at the same time without being interrupted by the LED code.

int ledPin1 = 10;
int ledPin2 = 11;
int ledPin3 = 12;
int ledPin4 = 9;
int value = LOW; // previous value of the LED
int oppvalue = HIGH; // opposite value
long previousMillis = 0; // will store last time LED was updated
long interval = 1000; // interval at which to blink (milliseconds)
int potPin = 2; // analog pin the pot is on
int potVal = 0; // initial analog value
char potStr[5];

void setup()
pinMode(ledPin1, OUTPUT); // sets the digital pin as output
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);

void loop()
// here is where you'd put code that needs to be running all the time.

// Start by turning off all the LEDs

digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, LOW);

potVal = analogRead(potPin); // read the value from the sensor
// this should be btw 0 and 1023

// standard function, takes int, string, and then BASE = base 10 math

// Not quite working....returns chars but they aren't numbers like I expected.

if (potVal > 0) {
digitalWrite(ledPin1, HIGH);
if (potVal > 255) {
digitalWrite(ledPin2, HIGH);
if (potVal > 512) {
digitalWrite(ledPin3, HIGH);
if (potVal > 767) {
digitalWrite(ledPin4, HIGH);

Sunday, May 10, 2009

Xeroxing my way to success

One year when I was in grade school, we had a series of speed-based math tests. We worked on these for weeks.

Every Monday we'd receive a new worksheet with a bunch of simple operations on it...on the order of 8+12=___, 17-9=__ and so on. The idea was for you to fill in the blanks and turn in your test as quickly as possible and the teacher evaluated how fast you were. I remember the teacher making a big deal out of this.

We'd keep the same worksheet for a week, retrying it daily. Although I was good at schoolwork in general, I had a lot of trouble with this task, and my dad decided to help out. The outcome probably motivated him to avoid helping me with homework thereafter.

Initially, the helping seemed to go well. I got a new test on Monday, I brought it home, Dad contributed his help, and by Friday I was the fastest in the class. As I recall it, I was a lot faster than anyone else. I was the star student.

But on the following Monday we got a new test and I was among the slowest again. I remember this really bothering my teacher, and embarrassing me, and boy was I sensitive to embarrassment.

I knew what the problem was the whole time, though I felt unable to tell anyone about it. Back then, access to photocopy machines was rare, but my dad worked for Xerox. So when I brought home a new worksheet, we carefully whited out the answers and then he made copies and I worked them at home repeatedly, with him timing me, until I was fast.

Like the famous counting horse, Clever Hans, I knew what results were wanted and I gave them, but there was a communication problem: I wasn't really solving the problems. I was memorizing the answers. So I climbed to the top of the heap fast, but when the teacher switched worksheets, I was thrown right back to the bottom.

I know we figured this out as a family. I don't remember what happened after that. But it was pretty embarrassing.

What strikes me about this is how I was unable to talk about this. I mean, I know I knew something was wrong. I knew I was supposed to actually work the problems. I guess I thought I'd get in trouble if I talked about it. And the way we were studying the problems, by running through the worksheets with a stopwatch, seemed to naturally lead to memorization -- I've always been good at that sort of memorization, anyway.

Friday, May 08, 2009

Free online versions of print comics

I bumped into this web page completely by accident. This fellow has done a fine job of compiling links to online versions of comic books. I'm reading Lucifer #1 right now! It's heavenly.

Thursday, May 07, 2009

Daisy Owl webcomic

I think I found Daisy Owl on Metafilter, I'm not sure. It's hilarious. It's about some kids who are being raised by an owl. The characters are very serious about their goofiness.

Sometimes the strip is ambitious, as when it aims to explain where backseat detritus comes from.

Wednesday, May 06, 2009

My first arduino: a DC Boarduino kit

I built my first through-hole soldering kit this weekend, and also my first arduino. I'm darn happy about it:

  • I built this thing the same weekend that it came in the mail. My usual practice would be to let a kit like this sit and ferment for weeks.
  • My first kit worked almost the first time! When I was building it, I got done, applied power, and it wouldn't work. And then I saw that I had one resistor left over. And I had to drill a hole through some solder that I'd accidentally allowed to fill a hole for that resistor, while maneuvering around all the other components. On the other hand, NONE of my neophyte solder connections were bad, so after I installed the missing piece, it worked great. This is like the principle of letting a kid win the first time they play a game. If I'd broken this first kit, I worry that I wouldn't stick with the hobby.
  • It loads code pretty fast.
  • My kids seem interested in learning to solder and work with electronics. This is going to be fun.
In general, it's exciting to have something to work with that involves hardware, but also has a strong software component. With an arduino, most of your circuit is changeable and development is therefore fast.

I've already had some fun playing with parts from my junk box. I think this'll make it possible to make lots of things out of junk.

On the other hand, I had intended to build most of the projects from Making Things Talk. However, the components used for some of the coolest projects in that books are pretty expensive -- bluetooth modules that cost $60, GPS modules, wireless networking modules. Unfortunately, it looks like the sort of modules that are easy to interface to a board are expensive, even as the consumer versions of such things become super cheap. But since an arduino can speak USB, maybe I can interface to some castoff parts that way.

(When I sat down to write this post, I decided there were probably lots of posts out there about people's first arduino boards. And there are.)

Simpsons theme song, a capella

Via YouTube, this gem.

Tuesday, May 05, 2009

TV intros; Jason of Star Command

Metafilter linked to this list of television show intros. This is a tremendous resource for our cultural heritage. For example, I'd forgotten there ever was a show called Jason of Star Command. At a glance it looks like a quick Star Wars ripoff, but if so they were really quick; it debuted in 1978.

In looking this up I checked the show dates for Star Trek too; I hadn't realized that original Trek ended in 1969, the year I was born. That's right, my life was ushered in by the moon landing and the end of Star Trek.

Saturday, May 02, 2009

Entire issue of Fell (#1) free, online

You can read the first issue of Warren Ellis' comic Fell online for free. It's about a police detective who leaves the big city to work across the river in a suburb that's full of problems, some of them perhaps supernatural. He's dealing with a disfunctional environment, a town that's killing itself.

I'm partial to cop stories of all kinds, and especially cop plus know, cops and super heroes, cops and vampires, cops and nuns wearing Richard Nixon masks. Guess which category this one fits into?

Friday, May 01, 2009

"Earl" is so much deeper than it appears

I'm tryin', Lord, I'm tryin'. I'm tryin' not to watch a lot of TV, but it ain't easy. Not if they're gonna wrap good writing and interesting themes in a tasty sitcom coating. 

"My Name is Earl" is a show about karma; explicitly so: the main character is obsessed with tracking down everyone whom he's ever harmed and making it up to him. And since it's a comedy, he's got good reason: in his life, karma acts immediately. We'd all be better people if we perceived the smack of karma as instant gratification.

For this reason, it has some of the Seinfeld mojo for me: circular plots that come round and surprise and delight. 

The other nicety is a Simpsons quality: even the worst characters usually have some redeeming quality. 

And the writers are not too bound by their formula. The classic Earl show is about Earl bumping into someone whom he hurt, and trying to make it up to them. But there were several episodes in season 3 where Earl was in prison. Sending him to prison and keeping him there for more than one episode ran against type, and was a lot of fun, especially with Craig T. Nelson playing the corrupt and incompetent warden.