Tuesday, August 11, 2009

PPUG 2009.8.11

:: bug detector (from Flickr) ::

We're on top of the world tonight, at Webtrends, top floor in a downtown Portland sky tower. This company obviously treats its people well. Michelle of Emma (her company) is treating us well as well, showing up with large numbers of gourmet Hot Lips pizzas and premium beers.

I'm glad I didn't eat supper, as this is definitely the real deal.

The FM radio stations are fussing about the cloud cover. Tonight, the Perseid meteor shower reaches a climax but no one near Portland is going to see that. We've had clear skies until today, when it's overcast and rainy.

You'd need to drive out the gorge anyway, to escape light pollution, but this weather means there's no viewpoint within a convenient driving radius (as a family, we tried Rooster Rock one year, somewhat disappointing).

We're like 40 people here tonight, including one child (she's part of the videotaping crew), at least as many as at the Ruby group the other night. I'd call this a party, although the chatter is unrelentingly technical, with some lore mixed in.

My meeting with Patrick Barton earlier today focused on simulation games as key to recruiting intelligent players into policy-making. If you want to build customer loyalty around your power company's development strategy, then have them appreciate the world you face, including their own role in that world.

Patrick, an accomplished psychometrician, is persuaded that simulations often more effectively communicate about complex, nuanced systems than any number of research papers, though it's not either/or. Kids probably learn more about urban studies from playing Sim City than from most textbooks, for better or worse.

We're not talking first person shooters here -- more like Civilization (Patrick had just been playing it, sampling the state of the art).

The military has budget for such games, aimed at recruiting, why not civilians too? Are we serious about nation-building, or just giving lip service?

If your rural high desert academy sells power to the grid from its wind farm or micro-hydel, then let's visualize that as a part of the game. If you're a water bureau encouraging conservation, share a relevant simulation with the schools.

Just before this meeting I was at Laurelhurst Rehabilitation Center visiting TC. This is one of those "as good as it gets" care centers, where most of the overworked staff don't themselves get any health coverage as a part of their low-wage jobs.

Meeting Tom's basic requirements, e.g. pain meds on time, has been an uphill slog. Most people are less effective self advocates (especially if sedated), don't like to be squeaky wheels -- and so fall through the cracks sometimes (the system encourages this).

Speaking of health care, North Americans were going berserk on TV about it, indulging in what passes for political debate around here. Intelligent discussion is not what the public airwaves are about -- more like cartoons, corporately sponsored lunacy (i.e. entertaining fluff). At least it's participatory. The town meetings have been well attended.

Mindfulness and consciousness
are separable concepts (per another filing today).

As AFSC rep and liaison, I've been getting some readings from various points within the organization, helping me grok what some of the issues are. I'll write more about that in some other post. Carol (my mom) is on the board, so between the two of us, we get some good overview.

Michelle did a short talk on the optparse module (I remember exploring that on Amtrak's Coast Starlight for amusement, some years ago). She has a nice loud voice and cheerful demeanor. It's no wonder she's our leader. Her example code spits out a "Python meeting date" given a -m month and -y year. If you don't want to go, use the -e option and the Python Oracle provides an excuse.

Adam Lowry is giving a full-fledged talk, originally a candidate for OS Bridge. This is about automated testing for Python projects, e.g. unit testing, functional testing, and web testing.

The Standard Module's unittest module is fairly minimal. It's a good place to start but gets difficult. A 3rd party module called nose is Adam's preferred solution. py.test is also worth considering. Nose sniffs out any callable (e.g functions or classes) that matches a simple pattern (has the string "test" in it etc.), allows for setup and tear down. Doctest is somewhat limited. Nose will work with it though.

Fakes, dummies, stubs and mocks provide simplified behaviors, basically simulate working components. For example, the decorator @mock.patch() will replace a callable with some other callable. We call this "monkey patching". mox replays / verifies against expectations. Suppose you want to simulate a database failing or other glitch, without actually forcing that behavior for real. Testing libraries put your code in a simulator, apropos of the above.

Could high schools have simulators, like OMSI has? Patrick and I were yakking about teaching driving skills, but you could use simulators for other purposes as well.

Now we're looking at Twill, a tiny language for primitive web testing. Windmill is probably better than Selenium according to Adam. This is if your project has Javascript and requires in-browser testing.

Hey, check out Igal's write-up, quite succinct and not "all over the place" like mine.