07 September 2014

A Moment in Time: Early September 2014

It's quiet and loud, busy and peaceful as I sit outside Starbucks this afternoon.  Caffeine from the Clover-brewed Ethiopian Yirgacheffe courses through me as the clock turns 6.

I'm reeling having watched The One I Love.  Like, back on my heels reeling.  Watched that at the Kentucky Theatre with a small matinee crowd, attempting to shut-down a few brain cells to prepare for crunch time ahead--crunch time at home, at work, etc.  I wasn't successful, the movie's a mind-f@#%.  Like, your mind rejects it, refusing to suspend disbelief, right as the main characters...have to suspend their disbelief.

Anyway, Chevy Chase area, Lexington Kentucky.  This is exactly where I always wanted to live, some place like this, or the Bardstown road area of Louisville:  Urban, but green, old but renewed.  Cars exist here, but they're optional...it's very walkable, and people seem fit, especially on a glorious no-humidity day with Fall in the air.

Mostly, I just like listening and smelling.   When I was out in Seattle in April, I enjoyed walking down to Pike Place market in the early morning (3 hour Jet lag, yay) and smelling and hearing the bustle, the life.  You can see how writers of the Lost Generation had to have a place like Paris, a nexus of people and ideas, of cafes and places to meet to exchange ideas.

Seems like we've forgotten that, the agora, the forum, the square, the Sunday afternoon bandstand.  Maybe America never had it, obsessed as we are with our manifest destiny to subdue a continent.  We have important STUFF TO DO.  "Shut up and get out of my way, buddy," shouts our houses, cars, clothes, and our noses buried in our phones.  "You" are not important.  *I* am important.

We'll find out some day we got that last part wrong.  We were all important, to God.  The "gift" of Neitzsche seems to be the pervasive belief that we're not.  The nihilism and chaos that's resulted shames us all.

The world seems ready to blow itself apart more than usual:   Russia and Ukraine read from Archduke Ferdinand's script--or something worse.  If every generation invents sex, we surely invent war, too.  "We'll look back and see that Malaysian Air 17 was the start of World War III," a friend opined on Facebook.  She's looking more right by the day.

On my front, lots of goodness:   I continue making my way through Cottrell's The Faith Once for All.  I've never had a systematic treatment of theology from the Ontological argument through a tour of doctrine, and this is my first foray at Tom LaHue's suggestion.  I've long be trying to reconcile freewill and God's omniscience and Cottrell has the first convincing argument I've seen that's not TULIP Calvinism or shackling God somehow.

At church, I'm taking a class on Apologetics with our music minister, Daniel Stephens.  I often look for people who "geek out" on a topic, be it dentistry, optometry, or car repair.   Like when you're interviewing people, you like people with passion.  Daniel gushes over philosophy and reason, to a degree I didn't even see in the Philosophy profs in college.  Class #1 was interesting, and I look forward to class 2.

* * *

Last, a bit of DIY:   This week my wife announced our fridge was broken, registering ~60 degrees F on wednesday.  All our food spoiled, but curiously the freezer was colder than ever, frosting over.  We prepped to swallow purchase of a new fridge, but scheduled a call to an appliance tech anyway.  He patiently explained that what we actually had was a frozen-over ventilation system from our freezer to our fridge.

"Has anyone left your fridge door open?"  Why yes, the darling three-year-old before you, kind sir.

So basically, he reformatted my understanding of how refrigerators work...at least the mechanical kind.  There's one thermostat, and it lives in your fridge.  There's one compressor circuit and it lives in your freezer.  There's airflow between the two, and whenever the fridge gets too hot, the thermostat tells your freezer to kick on.  However, there's a catch:  If the fridge stays open, it's possible for the freezer to run so long as to frost-up the channels between them.

That's exactly what happened to us.  So, 30 minutes of steam-defrosting later, we have our fridge back, at 10% the cost of a new fridge.  Tidbit:  "This fridge will outlast any new one you buy.  It's completely mechanical.  They made this fridge for 20 years.  If you want to get rid of it, call me and I'll take it."  Fellow seemed credible.  Again:  "Geek out" effect.



What Peter Egan taught me about writing: "Dynamics"

Dynamics?  Yes, dynamics.
  1. In musicdynamics normally refers to the volume of a sound or note, but can also refer to every aspect of the execution of a given piece, either stylistic (staccato, legato etc.) or functional (velocity). The term is also applied to the written or printed musical notation used to indicatedynamics.
 I've read Peter Egan obsessively for years:  I have dead-tree copies of 2 of 3 Side Glances compilations, and one edition of Leanings that stoked a motorcycle obsession I've had since 2008.  Prior to that, I'd pick up copies of Road & Track in the Winn-Dixie in my hometown, read the Egan article and then place it back on the shelf above the sign, "IF YOU READ THEM BUY THEM. THIS AIN'T A LIBRARY [sic]."

Indeed:  Libraries don't smell like cigarettes and rotting meat.

Thirty years on, Gearheads venerate Peter Egan, but I think that limits too much to our particular obsession.  Really, anyone who aspires to write or narrate anything can benefit from Egan's style, much like listening to various modern-day Chatauqua speakers benefit from Garrison Keillor or The Moth.  Like them, it's not so much the content--though with Egan it's almost always interesting--it's the way it's delivered

I'd like to deconstruct just one thing that makes that style great, drawing a parallel to music.  Remember back to music class in elementary school when you learned about 'dynamics'?  You know, how the composer of a piece intends a particular passage to be played with those fancy Italian words:  Staccato, legato, grandissimo, forte, fortissimo, piano, pianissimo. 

Or, if you're from my hometown: Sharp, smooth, grandly, loud, dang loud,  quite ("quiet"), or "I can't hear it it's so soft."

Said another way, composers tap into a central part of humanity:  We get bored really, really easily.  No matter how technically interesting or melodic the passage or lyric, if you don't vary how loud or soft you play it, people eventually tune-out.  Green Day's "Nimrod" album goes like this: PUNK, PUNK, PUNK, "Last Ride In," PUNK, PUNK, "Time of Your Life," PUNK.  The soft bounds the loud and gives it meaning and emotion.   That's the brilliant thing about Egan:  He does the same thing with his writing, by varying his paragraph length just when the reader needs it.

Let's dive in and look at a passage from Egan's last "Side Glances" column.

I sold the Beetle for $350 to a kid who was building a dune buggy, and then used borrowed test bikes from Cycle World to get around until I could afford another car. A Datsun B-210. This car was stultifyingly dull, but the fenders were attached to the body, and it ran on all four. Three years later, I took a job with Road & Track, upstairs in the same building as Cycle World (these two publications were owned by CBS at the time), and I've been contributing to both magazines ever since. Thirty-three years at CW,and 30 years at R&T.
Anyway, that loyal but rusty Beetle was the last VW product I owned, despite my having an irrational weakness (active to this day) for the Volkswagen Thing. But no more Vee-Dubs until now.
Why now?  
Well, because I'd like to retire.
 In a nutshell, the above is that 'Dynamics' I'm talking about.  Long Paragraph, short paragraph, Punch, PUNCH.  The above is the climax of the column, the point at which Egan's announcing his retirement.  The following paragraphs will explain, detail, and valedict, but this is the turn.  Look, how ordinary it is.  This is weighty, dramatic stuff, but he just offers it up in a short snippet without drama or ornation.

Nice, isn't it?

I don't know what to call that from a writing style perspective aside from 'dynamics'--the shape and complexity of the prose varies with pauses and interludes between major passages that capitulate the previous and introduce the next in a way wholly designed to refocus the reader, whether that's a guy reading R&T cover-to-cover or an ADD kid in a Winn-Dixie.  These dynamics make the writing digestible and they make the reader comfortable.  Simple to explain, hard to practice.

Since reading Egan intentionally with an eye to his style, I've tried to do the same, to have discipline on the shape of the prose I'm writing, much like I (attempt to) have with the code that I'm writing.  As my colleague Pete once said, "I can just scroll through this file and tell you it's a bad design, the shape of the code is wrong."  More and more, I see the same thing with short-form prose, and email, and even public speaking.

And, it seems like it's getting worse.

I've noticed something about the better prose, though:  It looks lots like Peter Egan's.

27 August 2014

Spoilerific Liveblogging Dr. Who S8E1: "Deep Breath"

SPOILERS!!

Dinosaurs in London.

Well, that was awkward.  Capaldi off to a poor start, but honestly, so was Tennant in "Christmas Invasion"

New Opening looks like the opening to Amazing Stories in 1985...

"People are apes.  MEN are monkeys."  Nice, Mdm Vastra

Clara dealing with the change.  Not well.  Metaphor for all relationships--people change.  Are we big enough to see through the veil?

Parallels: Doctor and the Dinosaur, "I am alone..."

Strax is a joy, per usual, "May I take your clothes?"

And...there's the cyborg

"He looked young, you might as well flirt with a mountain range."  Nice interlude to explain Peter Capaldi is...you know...old.

"My Time Machine was stuck in your throat...that's mostly how I meet girls."

"Planet of the pudding brains..."

Strax: "...and we will melt him with acid.  The Times shall I send it up?"  WHACK!

Ah, JLC in Victorian Garb.  Holds her own quite well against Strax's impromptu exam.

"I'm sure I've seen this face before."  Yeah, like in Pompeii?  This episode is....trippy...."Why this face?"

"These are ATTACK EYEBROWS"

So, David Tennant couldn't be scottish, but Capaldi *can*...?

Jenni in a corset.  So, there's that.  "For the sake of Art."...And there's the gratiuitous nude torso.

"It's at times like this I miss Amy" (Yeah, she had legs that were 12 feet long, dude.)

I've seen this before...yes, on the Madame Pompador.  F-A-N-S-E-R-V-I-C-E.

"No point in them catching us both."  What...WHAT?!

"The Promised Land"

"And that includes Karaoke and mimes"

"Geronimo!!" F-A-N...oh, nevermind.

"I've got the horrible feeling I'm going to have to kill you."

Nice action climax there :-)

"Give him Hell, he'll always need it."

New TARDIS!!

"Clara, I'm not your boyfriend."
"I never thought you were."
"I never said it was your mistake."  Bah zing.  So 11 *was* into her.

There's a woman out there, that's very keen we stay together.

"I'm sorry.  I'm so, so sorry."

MATT SMITH!!  It's his voice...He needs you.

"Goodbye Clara"

"You look @ me and you can't see me."  Okay, Moffat, you got me with that one.

"I don't think I'm a hugging person now."

"I'm missy.  I hope my boyfriend wasn't too mean to you."

17 August 2014

Developer toolchain, 2014 Edition

I try to pause every so often and record what my toolchain looks like.   Sort of like people posting on Everyday Carry, but for what I use every day in development.

  • Development machine: 13" MacBook Pro Retina, 2.8GHz Core i7, 8GB RAM, 250GB SSD.  I love this machine.  My wife calls it my woobie.  She's not far from right.
  • OS: Mac OS 10.9.4.  Unix when I want it to be, polished Consumer OS when I just don't care.   It's been 3 years since I ran a windows box as a development machine and with virtualization I can't see running windows as a primary OS ever again.
  • Physical Setup: Thunderbolt Gigabit ethernet, Thunderbolt-to-DVI single 23" monitor, Microsoft Natural Ergonomic Keyboard 4000.   I've dabbled in multi-monitors and buckling spring keyboards, but this setup keeps my attention focused and my repetitive strain to a minimum.  I'll eventually wear out this keyboard and probably buy another one just like it.
  • Note taking tool: Evernote, but honestly I'm dissatisfied everywhere I turn.  Evernote gets closest to what I want amid everything else I've tried:  Google Keep, OneNote (which is an abomination on the Mac), paper notebooks, PDAs, Google Drive Documents, emails.  I basically pendulum between over-noting and under-noting everything.  Google Drive wants to be the master, but I resist.  I'm not sure why.
  • Blogging Platform: Blogger, through simple inertia.  Wordpress seems like exchanging one master for another.  I'm taking a hard look at Github:Pages and Jekyll because I like finer-grained creative control and Markdown, but I can't commit to it.
  • Terminal Program: iTerm.   Tabs are nice.  I spend lots of time here these days in irb or grails shell.
  • Command line shell: zsh + oh-my-zsh.   Tabbing command-line completion and aliases for most things.  (Ex: gc == "Git commit"), with a vibrant community to go with it.
  • Package Manager: Homebrew.   I have no idea how I survived on windows without a decent package manager like apt, yum, or brew.  I'd switch away from Windows to *nix or Mac for this alone.
  • Editor: Sublime Text 3.  I'm an old vi guy.  Sublime has let me forget the envy I always had for not learning emacs.  Like homebrew or oh-my-zsh, has a rabid, vibrant community.
  • IDE:  Honestly, none.  I like command line tools and Sublime, but I acknowledge IntelliJ 13 is peerless in the Java/JVM IDE world.  (Sorry, Eclipse...I've been a user since 2.11, but you're just a hot mess.)
  • Virtualization: VirtualBox.  A colleague turned me on to this a few years ago, and paired with Vagrant for setup/teardown, it's great.
  •  Scripting Language: Ruby.    This one feels like the old Simpsons plot "So you finally decided to steal cable tv."  Ruby is NICE.  It's like PERL grown-up, without the awk acne:    The language just falls away, and you're dealing with the problem at hand.
  • Backend framework (tie):  Rails 4.x or Grails 2.x.  Yeah, I'm not taking a position here.  If you're playing with the JVM ecosystem, Grails is the obvious pick.    Rails is (and remains) a breath of fresh air, especially with the tools that go with it:  Bundler, Berkshelf, rbenv.  Moreover, there's a frenetic vibrancy in the Rails community that's infectious.   Maddening--sure--but infectious.
  • Browser: Chrome.  Frau Perry croons, "We fight, we breakup, we kiss, we makeup."  Chrome makes me uneasy the same way IE 5 did back in the day--it's becoming a monoculture, and Google's starting to get evil with it.  Still, it's fast and its fundamental architecture still has Mozilla's Firefox playing catchup.
  • Source Control:  Git, specifically Github and Github:Enterprise.  Pull Requests and social coding have changed how developers work in the last 5 years.
  • Mobile: None.  I was a phandroid, but I'm still on the smartphone wagon for 1 year and 6 days now.  I'm not first in line for a mobile development position, but there's enough left in server and web development that I think I'll be okay.
  • Social Media:  Twitter for short-form and Facebook for long-form.   Facebook's just inescapable if I want to interact with family, friends, and church.  They seem intent on running everyone away, but the simple network effect keeps everyone there.  I much prefer twitter, but understand not everyone can stand it, particularly since they went public and started screwing with everyone's   Google+ is dead, and has been since 3 months after it launched.  Google should merge it with Youtube (the perfectly good social network they already had) and be done with it.
  • Miscellaneous: Vagrant, Chef, gvm, Github Pages, Jekyll, Markdown, npm, 
/Stream-of-consciousness

An Afternoon with the Fleet

There aren't really pics to go with this.  Sorry about that.

It began simply enough:  A dog days Saturday that promised mild temps and good weather.  Car parts in two separate boxes in my garage.  "I'll probably have this done before you guys get back from the hair place, " I said.

I set myself two tasks:  Kill the Check Engine light in the Camry that'd been on for two years and 5 days, and give my 1995 truck a tuneup--plugs, wires, rotor, distributor cap.  I had all the parts, and plenty of hand tools.

Simple enough....

In Which Your Author Hugs a Camry

I knew the problem with my Camry was the Vacuum Switching Valve.  It was throwing trouble code P0401, which meant a problem with the EGR system.  Cars are so polite these days, telling you these things.  Back in the day, one had to diagnose from symptoms, now the sensors throughout the system tell you your car that's otherwise running fine needs help.  Okay, so it didn't need help, but I was tired of staring at a CEL, and I'd already paid about $400 to have the EGR valve and Modulator replaced. The internets told me it was the Vacuum Switching Valve.  What's a vacuum switching valve?  I've no idea, but given its powered and has an input and output vacuum line, I assume it's something the ECM uses to turn the EGR system on and off.

Here we run into trouble, because like most modern day DIY mechanics the first thing I did to prep for the task was to search Youtube for a suitable video.  No suitable video exists.  The closest I could get was a guy doing the swap on his 5SFE (2.2L Toyota 4 Cylinder) RAV 4, and that had blurry shots of some dark recess of the engine and lots of grunting.

...which, turns-out is exactly what's involved.

To wit:


(The little bugger in question is #8, above.)

So I chocked the wheels, jacked-up the car as far as I could, put the front on jackstands, then slid underneath.  Then I began the search for the VSV.  Uhh...as near as I could tell, the thing lived somewhere behind the intake manifold, above the motor mount, which is as close to the Bermuda Triangle you get in the otherwise-roomy 4th XV20 Camry nose.  Seriously--I've never found anything on this car hard to work-on.  Well, at 200,014 miles, today was the day.

I couldn't visualize it, and I couldn't get my hands on it.  I was stuck, so I slid out and tried to look from above.  That didn't help.   I finally figured I needed to take the passenger-side front wheel off.  

(This was when my wife and daughters showed-up and my "before your haircut's through" estimate evaporated like Jeff George's QB credibility in the middle 1990's.)

With the wheel off I could finally visualize the VSV.  Well, okay, I could visualize the bolt that held on the VSV and a sure pathway to get at it:  Lie directly beneath the passenger subframe, and fish my left hand between the exhaust and the subframe, then send my right arm in behind the wheel hub and between the engine mount and the engine accessory pulleys.

Once I did that, I could use a 12mm 6-point 3/8" drive socket, a 6" extension, and a U-joint attached to a ratchet to get it off.  

It struck me how similar this must be to laparoscopic surgery, but without the benefit of a laparoscope.

Basically, from there, I got the VSV off, put the new one on, and got things buttoned up after only 2.5 hours.  The car ran, and after I disconnected and reconnected the battery terminal, the CEL cleared.  VICTORY!

In which Our Author Renders American Iron Immobile

Alright.  A tuneup.  This should be easy--I've done plugs and wires on the Camry (twice), the bmw (once).  All didn't require a trip on a rollback to be fixed.  I was even handy with a feeler gauge.

Problem the first:  My feeler gauge had gone missing.  Trip to Advance Auto Parts #1 for the day.

Problem the second:  All the aforementioned cars had had at least one tuneup after leaving the factory.  That's right, as near as I could tell, my 1995 Chevy TBI 5.7L was running roughly 20 model years later on the original ignition system.  Bravo, AC Delco.  Bra-frickin-vo.

Some things I found out doing a tuneup on a small block chevy:
  • Sitting in the engine bay is a requirement.  This was a novelty for me, having come up long after the death of big American cars.  Thanks to Chevy sticking the distributor behind the intake beside the firewall, you'll either be laying on the engine or sitting beside it.  By the end of the day, I'd done both.
  • You've got to remove the Air cleaner and it's metal housing, exposing the Throttle body injectors (awww, cute...this is how to do fuel injection on an old carbureted motor!  Make a fuel injector that fits on a carb manifold!)
  • Disconnect the battery.  No, nothing happened, but an energized ignition coil has like 22k volts. 
  • Tools you'll need:
    • SAE wrenches and sockets.  This thing is American as they come, right down to the bizarro sockets in the 32nds of an inch.  Aside from my GTO, I'd always worked metric, but I had plenty of SAE.  Specifically:
      • A 5/8" deep socket or spark plug socket of the same diameter, 3/8" drive
      • A little screwdriver-pick thingy.  Something like the third tool from the left here: 
    • WD40.  You're dealing with steel and cast iron.  Things will be rusty.
    • A 7/32nds 1/4"-drive socket and a 6" 1/4 inch drive extension.  You'll be sorry if you don't have this when it comes time to take the distributor off.  I had to make another trip to Advance Auto to get a (very overpriced) 1/4" extension to make this work.
    • A 3/8ths drive micro-torque wrench that reads up to 250 inch-lbs  (correct, inch-pounds.  This isn't the 2' long jobber you use to torque your lugnuts.  This is a delicate instrument.
  • Do one sparkplug and wire at a time.  Don't touch the distributor until you've done all the wires.  I must've spent a total of 1.5 hours just taking the darn retaining clips off the wire hangers on both sides of the engine.  These will be old, brittle plastic, and that pick is invaluable to get them loose.  Once I got going, I usually replaced the wire, then replaced the plug.
  • Gap the plugs to .035" ("Thirty-five Thousandths") That's the spec for a SBC of this vintage.  
    • The plugs you get from AC Delco will be pre-gapped at .045", so you'll need to re-gap each one.
  • Start the plugs by putting them in the socket, grab the socket with your hands, and rotate the plug counter-clockwise until you feel it drop into place, then begin to tighten (clockwise).  That helps you avoid cross-threading the plug.
    • Seems like most manufacturers (NGK, etc.) tell you to avoid anti-seize, so I didn't use any
  • Torque to 20 ft-lbs or 240 in-lbs.  It's tight in there, so use the u-joint.
  • Squirt the distributor screw/bolts with WD40.
  • Use the 7/32" socket and the extension to remove the distributor cap.  Sure, you can try to use the phillips-head screws, but once you strip those hopelessly like I did, use the socket.
  • Transfer the wires one-at-a-time from the old to the new distributor cap.  This way you avoid screwing-up the firing order of your engine.
  • While the caps's off, yank the rotor off the top of the distributor.  It requires quite a bit of even upward force to come off.
  • Put the new rotor on.  Again, it requires quite a bit of force to seat it.
  • Put the new cap on, wires attached.  
  • Spend an hour trying to get the screws to go in.
  • Give up and go eat dinner.  Obsess about what went wrong.
So yeah, after all that, I didn't get it done yesterday.  I couldn't get the distributor cap to seat properly so the two screws that hold it on would start.  In desperation, I tried putting the old cap back on just so I wouldn't have an immobile 5000lb truck in my back drive, but I couldn't get that cap on either.

My going theory is the rotor's not seated fully, so the cap won't go down all the way.  Or something else obvious I'm missing.  In any case, an afternoon wrenching on my old cars, outside, with at least one success.