Ph: 01201200

Charlotte's Web and the blur of nostalgia

Without forethought I've seen three versions of Charlotte's Web in the last few months:

The live-action 2006 movie, The animated 1973 film, and The recent Pittsburgh Childrens Theater production (I won't talk about this one though: it was okay and fun for Ella)

Charlotte's Web cover from Wikipedia

This all happened after reading the book to Ella for the first time this summer. While it was one of my favorite books as a kid I never really thought about why that was so . Re-reading it with Ella brought it into new light: it's direct and doesn't talk down to kids or sugarcoat death or pain or rejection or heartbreak. But it moves on from those things as well. It's also remarkably free of self-awareness, unlike a lot of modern kids media.

So when Ella said she wanted to watch the movie, I figured she'd seen something about the animated version somewhere. Which I thought was fine: I didn't remember it very well, but I had a vague feeling of nostalgia around it.

But when I heard it was a recent production, and had a CG spider with Julia Roberts doing the voice, I feared the worst: lots of singing and probably dancing, cute animals, pop culture references for the adults, and maybe Charlotte wouldn't even die. Grumble gumble. Surely it wouldn't be as faithful as the barely remembered version from my youth?

So when we watched it that nagging feeling of nostalgia pulled me into playing an internal cranky old man monologue for a while ("Julia Roberts doesn't sound right", "That guy was a jerk-off in Rising Sun", "Where did those crows come from?"). But then... then I stopped, and it worked. Really well. And I got why the crows were there. And the CG was good but spare. And just about everything that was great about the book was in the movie, including the most important part: the tone.

My sister got Ella the animated verion for Christmas. And when she visited over New Year's we all sat down to watch it. I was keenly interested in how much better it would be than the new version.

And it wasn't. At all. In fact, it was much worse. Lots of singing, very little character development, almost no tension between the characters at all. And there was a modern feeling adult-oriented camp having Paul Lynde voice Templeton. It added a layer of snark without much else. Nostalgia lied to me, and I'm glad I was able to see through it.

So, here are a few more reasons why the new version is much better than the old:

The biggest one: why did Charlotte do this for Wilbur?
Old version: Who knows? She comes up with the idea so soon after meeting him that it seems she was bored and looking for a project.
New: They took time to establish the friendship between Wilbur and Charlotte (just them talking, really) and, crucially, made Charlotte an object of disgust among the other animals. The idea that Wilbur's exuberance (for life in general and for Charlotte in particular) wins over the other animals and make her an equal to them is central. It gives reason and weight to her decision to go to the fair, which the movie brings out explicitly when (I think) one of the cows tells her she can't do it because of her babies.

Charlotte's appearance in the two is instructive as well. In the animated version she's almost elegant: like a bug who's got a classy hat on. But in the new version she's... well, gross. All her eyes are looking at you and she's got bits sticking out here and pincers chomping there. And over time, just like for the animals, that falls away for you, and you see her swaying in the breeze, weaving and talking to herself. Or gathering the animals together for a pow-wow, or telling Wilbur she can't make it back to the barn, and it's her voice that rivets you. (Sorry I doubted you Julia.)

Templeton in the new version is more complicated. In the old version he protests when asked to do something, but it's so weak and short that you know he's still going to do it. In the new one you're not really sure. Actual tension. Plus I think Steve Buscemi was the perfect voice.

The old version has a dumb, completely unproductive relationship between Wilbur and the 'runt' of the geese, who had such an annoyingly cute name that I've wiped it from my brain. In its place the new version brought out the characters of the pompous sheep (especially Samuel -- John Cleese), the dumb but faithful horse (Robert Redford), and the wise slow cows (Kathy Bates and Reba McIntyre).

Fern's development gets short shrift in the old version. In the new one she not only spends more time at the barn, but how her mother reacts to her is played out more. (Beau Bridges makes a brief but great appearance as the wise country doctor.) Her worries about Fern being antisocial/tomboy are carried forward later in her surprise that she's wearing a dress to the fair. This idea that kids grow up while you're worrying about them is one that I think resonates pretty powerfully with parents.

There's a voice-over line -- Sam Sheppard, nice! -- after the fair and when the winter comes about a spring pig seeing snow for the first time. Hugely poignant, completely missing from the animated.

I didn't like how present Henry Fussy was in the old one -- they tried to introduce a "mom's keeping him away" theme, then he went away for a while to his grandfather's and came back more "natural". In the new one it's much more subtle, a hint here and there and then at the fair he's got a ticket for her to ride on the ferris wheel. Smooth operator.

And when the new movie deviated from the book it did so in elegant ways. The two crows ( Elwyn and Brooks, nice homage) provided comic relief, Ella loved them. Even now whenever we see a crow we caw and say, "Corn!"

Permalink

Ella's latest

Christmas smile

I've been pretty quiet this year and haven't chronicled much about Ella. But I'll just pop up to say that she had her yearly checkup today and is tall (almost 4 feet!) and healthy and beaming and reading and talking your ear off and dancing and... I love being a dad to this kid.

Permalink

Next and previous JavaScript months

The date/time libraries shipping with some languages I've used are just awful -- e.g., Perl, Java, JavaScript. Fortunately, the first two have great libraries available DateTime for Perl and Joda-Time for Java.[1] For JavaScript, it's slim pickings. There is DateJS which provides some parsing and fluent interface functionality, but seems to be lacking in other concepts (e.g., durations and intervals). But AFAICT there's nothing of the comprehensiveness or extensibility of either of the Java or Perl alternatives.

While DateJS allows you to do math, there's also a nice little hack you can do for at least one simple use case: given a date, what are the next and previous months?

In good APIs this is handled with ease:

 
Java: 
  DateTime now    = new DateTime(); 
  DateTime future = now.plusMonths(1); 
  DateTime past   = now.minusMonths(1); 
  System.out.println( "Future: " + future + "\nPast: " + past ); 
 
  ==> Future: 2012-02-09T22:31:55.656-05:00 
  ==> Past: 2011-12-09T22:31:55.656-05:00 
 
Perl: 
  my $now    = DateTime->now( time_zone => 'America/New_York' ); 
  my $future = $now->clone->add( months => 1 ); 
  my $past   = $now->clone->subtract( months => 1 );  
  print "Future: $future\nPast: $past\n"; 
 
  ==> Future: 2012-02-09T22:36:01 
  ==> Past: 2011-12-09T22:36:01 
 
Ruby:[2] 
  now    = DateTime.now 
  future = now.advance( :months => 1 ) 
  past   = now.advance( :months => -1 ) 
  puts "Future: #{future}\nPast: #{past}" 
 
  ==> Future: 2012-02-09T22:55:26-05:00 
  ==> Past: 2011-12-09T22:55:26-05:00 

In JavaScript you can't do that. But you can find the previous/next months pretty easily. The Date constructor takes a series of values for defining the date. If you specify a day '0' for the day of month, you'll get the last day of the previous month, and if you specify a day '32' you'll get somewhere around the first day of the following month:

 
JavaScript: (using Rhino 1.7R3) 
  var now    = new Date(); 
  var future = new Date( now.getFullYear(), now.getMonth(), 32 ); 
  var past   = new Date( now.getFullYear(), now.getMonth(), 0 ); 
  print( "Future: " + future + "\nPast: " + past + "\n" ); 
 
  ==> Future: Wed Feb 01 2012 00:00:00 GMT-0500 (EST) 
  ==> Past: Sat Dec 31 2011 00:00:00 GMT-0500 (EST) 

It's not the same result, but that's okay because the day is unnecessary. I've tested it in Rhino and a few browsers (FF, Chrome, IE 8) and all had the same result. Hope it helps.


[1] JDK 8 will vastly improve the default, taking it from terrible to awesome -- see JSR 310.

[2] The 'advance' function is not in the core Ruby Date/DateTime library, but it is added by Rails. I had a devil of a time getting this to run as a standalone script so just ran it in the rails console. The interplay between the names of Ruby libraries, the classes, and the documentation is very confusing to an outsider -- for example, 'ri DateTime' gives you methods monkeypatched into the class by ActiveSupport.

Permalink

Pittsburgh Ruby Talk: Software process, the good parts

Who? Andrew Clay Shafer, @littleidea (puppet, conferences, involved/writing on devops)

When? 5-January-2012

What? Great, inspiring talk on software process, different types of agile and their core meanings (rather than the headlines people echo, often mindlessly) coming from someone who has obviously thought about these for quite a long time and internalized some deep lessons.

(these are my minimally translated notes from the meeting, they won't all necessarily make sense out of context)

Agile

first impression: hated it scrums: felt like lots of STUFF, not much getting done beware the expert some people say 'agile', they mean 'scrum' Salt Lake Agile Roundtable: Alistair Cockburn (!!!) runs it, 2-5 on the first thursday every month (during work, it's serious!)
mix of companies (novell, motorola, startups) and people went there to get ammunition, but what he found was more interesting (smart people discussing ideas) image from Crystal Clean (context for everything) (size vs criticality)

Crystal

frequent delivery reflective improvement close/osmotic communication (speed with which ideas can move thru organization) personal safety (willingness to put yourself out there) focus easy access to expert users (your customer!) automated tests, configuration management, frequent integration

Context matters

criticality size scope schedule contractors (interfaces and coupling; who does the interfaces? -- how big is your tribe? ==> conway's law) distributed

MVP: Mimimally viable process

XP: Jedi of agile (if only Kent Beck would come out of the swamp) Lean: Mary Poppendeck (first person to bring lean into software; mostly about building businesses and building pipelines of value) Kanban: (feel it's the most useful way to build software right now)
focus on quality reduce WIP deliver often balance demand against throughput prioritize attack sources of variability to improve predictability visualize the flow: if you see a bottleneck, you can stop the line and get the whole team involved
Lean startup: read "Four Steps to the Epiphany" before "Lean Startup"

Reflect

hardest thing to do: inspect and adapt cargo culting: all ceremony, no substance ARxTA (Brian Marick): We believe Agile software development is being dumbed down... (full quote) Working software is the primary measure of progress (like from the Agile Manifesto) OODA loop: Observe, Orient, Decide, Act; Building vs Planning: but why are we building it? David Hussman, Dude's Law: Value = Why / How @ salt lake thing: moratorium on talks on estimation, it's too hard

Vision

hardest thing in software is capturing the vision Antoine de St Exupery quote ("...vast and endless sea") user story is a promise to have a conversation, not a spec! backlog is a ghetto... where stories go to die story mapping: write stories that capture the whole value (embrace the epics, we need to know this stuff!); what's the minimal span of those stories? this is the 'walking skeleton' => do enough to get the skeleton moving

Teams

we design systems, why don't we design teams? different strokes (meh) CAP theorem: applies to people, too! -- if you require consistency, you give up availability: meeetings are global locks (is P related to co-location vs distributed?) Six laws of reliability (Joe Armstrong, Erlang): isolation, concurrency, failure detection, fault identification, live upgrade, stable storage => apply this to process (live upgrade => bringing on new people) FSOP cycle (flying by the seat of our pants):
smart people FSOP >
successful patterns emerge >
patterns recognized and adopted as process >
structures created to drive/moniotor process >
process becomes painful >
smart people reject the process >
(start from beginning)

Advocate

really like kanban like XP tech practices focus on quality everything depends on context, but in context make policies explicit (this is fuzzy to me -- true that everything depends on context, but there's a tension with too much +/or the right kind of policy, e.g. "what's in your coding standard doc?") if something doesn't feel right, you're doing something wrong; might be that thing, might also be you... if you aren't getting results, change something if you're changing too much too often, you won't get good results measure (but don't get caught up in vanity) process is a competitive advantage, passion is a competitive advantage, but don't let process kill passion smart people solve problems

Q + A

Q: heard it said that scrum is kind of training wheels for kanban/lean, true?
A: more reason for people to sell scrum; kanban is easier!

Comment: Agile manifesto says "people over process", but agile people are obsessed with process!

Permalink

Consistent work

The consistent work enhanced my act. I learned a lesson: It was easy to be great. Every entertainer has a night when everything is clicking. These nights are accidental and statistical: Like lucky cards in poker, you can count on them occurring over time. What was hard was to be good, consistently good, night after night, no matter what the abominable circumstances.

Steve Martin, Born Standing Up

Permalink

Physical precision

The new physicality brought an unexpected element into the act: precision. My routines wove the verbal with the physical and I found pleasure trying to bring them in line. Each spoken idea had to be physically expressed as well. My teenage attempt at a magician's grace was being transformed into an awkward comic grace. I felt as through every part of me was working. Some nights it seemed that it wasn't the line that got the laugh, but the tip of my finger. I tried to make voice and posture as crucial as jokes and gags....Finally, I understood the cummings quote I had puzzled over in college: "Like the burlesque comedian, I am abormally fond of that precision which creates movement." Precision was moving the plot forward, was filling every moment with content, was keeping the audience engaged.

Steve Martin, Born Standing Up

Permalink

That reminds me...

[image]

...I need to watch Spinal Tap again. Who are you people who pretended to see it but didn't actually? The mind boggles. That film doesn't age for me as many comedies do (Strange Brew for instance -- still love it, not the same experience). Other Guest + Co. productions are similar in their longevity. May they continue.

Permalink

One of the things they don't tell you...

(At least for me.) When you become a parent, many stories you hear about kids just cut through all your cynicism callouses and hit your emotional core in nothing flat. This story from Anthony Griffith just had me crying in a public place.

I am not a praying person. But I do recognize my immense good fortune, and I'm thankful for it.

Permalink

Impressions of Pittsburgh Geek Out Day

Pittsburgh Geek Out Day on Saturday morning was very stimulating. It's an open spaces conference, which essentially means the sessions, and content within a session, are determined on the fly by the participants. I think this was a little disconcerting at first for some people but wound up working well.

I'd guess about two dozen people attended, which IMO is pretty good for a first-time, Saturday-at-8:30-AM meeting. About 25% of the attendees were from Summa, though they didn't explicitly mention that. In fact, they took pains to separate their presence from the event, not wanting people to assume this was some sort of recruiting/advertising exercise. It certainly didn't feel that way to me -- even the 'thanks' for the free bagels/juice/coffee came at the very end.

The day started with an intro to the process, then people briefly announced their discussion ideas before sticking them up on a wall, proposing a time/room for it -- there were three timeslots and three rooms, so only nine discussions. (The room distinction was mostly irrelevant.)

I proposed three ideas with the intent that only one of them would probably go in because lots of other people would chime in. But the number of sessions wasn't as overwhelming as I thought, and it turned out all three were on the schedule. This was okay, but had the downside of missing other good discussions. That's a normal side-effect of getting a number of engaged and bright people together, but being a facilitator means you can't use the "law of two feet" to explore another one.

The law of two feet is a simple thing -- if you're not getting anything out of a discussion, nor are contributing to it, then you have not only the option, but the responsibility to move elsewhere. But its implications are much deeper. There's no second-guessing about whether a topic is interesting or useful; if not, people will change it or leave.

It's exhausting for me to determine whether people are into a topic, or whether I'm talking too much, or not enough -- my social antennae are stunted or something. So I found this a wonderful constraint. It also strikes me as very adult, as in you're treating your discussion colleagues as adults by allowing them to make their own decisions.

The topics I attended weren't earth shattering, but wandered into pretty meaty areas. The first was on managing distributed teams, ostensibly with agile but we wound up discussing communication and management problems in general, how different personalities affect what you need to do, and a topic ('Cognitive Systems Engineering') that I want to learn more about. There were only three people in this one, but I felt like we could have talked for another hour or two, easily. (More with beer.)

The second was on 'continuous deployment', a topic I'd proposed. We spent a good bit of time on a couple of concrete problems, which was excellent because it grounded the discussion. One of the conclusions I had reinforced was that, even if you cannot do continuous deployment, the act of trying to create the process (lots of automation and streamlining) has good results. Only four people in this one.

The last was on sharing technical and domain knowledge with your team, though it really focused on the former. About 12 people in this one, a lot of it around getting people up to speed (code reviews/desk checks seemed to be the most mentioned method).

Overall, the day was just great. It was exhilarating talking with people having the combination of: experience, useful reflection on that experience, lack of ego, and the desire to learn more. I look forward to more.

Permalink

Happy anniversary!

Eleven years ago, on a blustery, snowy Pittsburgh day, I married my favorite person. Lucky me, lucky us.

Interesting light

Permalink


You are viewing a mobilized version of this site...
View original page here

Mobilized by Mowser Mowser