A duel is due

I haven’t seen The Winter Soldier yet, but I did find a couple of podcasts to help me prepare. They’re both episodes of the Talking Comics podcast, which I’d never listened to before.

The first is episode 127, “History of Captain America.” This is a three hour episode, but the first half is the sort of non-Cap stuff of their typical show. I suggest fast forwarding to about 1:25, when they shift to Cap. Bob Reyer, who seems to be the podcast’s resident historian, does a nice job of running through the whole Captain America timeline, starting with the Simon/Kirby days before WWII and going up to the present.

It’s a much better narrative than what you’ll get by reading the Wikipedia entry for Captain America. I find all of the Wikipedia articles on comic book characters unsatisfying because the biography sections treat the characters as if they’re real, and there’s a lysergic quality to the chronicle because all the inconsistencies and retcons are treated at face value. The history you really want to hear is one that accepts that different writers and artists have taken the character in different directions and doesn’t try to make it sound as if every story is part of a coherent whole. Reyer does that quite well.

Unfortunately, the host of the show has the disturbing habit of interjecting continually instead of just letting Reyer talk. He doesn’t actually say anything or steer the narrative, it’s just a long, intermittent stream of uh-huh, yes, alright, mmm-hmmm, right, yes, uh-huh. For an hour and a half.1

My favorite part of the show is when Reyer moves from the Steve Englehart years, considered one of the book’s highlights, to Jack Kirby’s return in 1976. Kirby both wrote and drew the book, and Reyer whispers “It was horrible,” as if saying anything negative about the King was sacrilegious.

Captain America 193

It was horrible, though. I remember being bitterly disappointed in the Kirby issues. I was, you see, a big Kirby fan. He was gone from Marvel when I started collecting, but I bought all the monthly books that reprinted the Silver Age stories that he and Stan Lee did. Also, I bought the Marvel Treasury Editions, in which the best of those stories were reprinted at high quality and in an extra large size.

Captain America Treasury Special

I don’t remember disliking Kirby’s storyline; it was the drawings that put me off. Kirby’s characters had always been on the blocky side—that was part of what made his Ben Grimm so good—but now there was a stiffness about every character that hadn’t been there ten years earlier. It was as if someone were doing a Kirby parody. You don’t see it so much in the covers, especially the one John Romita inked,2 but it was prominent in the panels inside.

My collecting years started at the end of Englehart’s Nomad series, and I remember him also as the writer of Doctor Strange and the Avengers. The Talking Comics people interviewed him in a special episode also timed to coincide with the release of The Winter Soldier. I’m a sucker for stories told by the people who made the comics I read, so I’m probably not the best judge of this interview: I wish it could have gone on longer. I loved hearing him talk about the Secret Empire storyline, Nomad, and the Rutland Halloween crossover.

It was also interesting to hear about the kinds of sales comics racked up in those days. What’s considered a big seller now would have been on the chopping block back then.

Of course, I also listened to The Incomparable’s Winter Soldier episode and will probably listen to it again after I see the movie. The spoiler horn goes off early, but that doesn’t bother me. One good thing about getting older is that by the time I see the movie, I’ll have forgotten the spoilers. Well, not the big one, but I knew that one already.

  1. I may have been especially sensitive to this because I listened to the show on a day in which I had a phone call with a client who added a drawn out mmmmmmmmmm-hmmmmmmmmm to the end of every one of my sentences. 

  2. I’m surprised I didn’t pee my pants when I bought Captain America 193. Jack Kirby and John Romita collaborating on a cover that I was able to buy new off the spinner rack! 

The ol’ science fiction ghetto

I ran across this article by Chris Beckett, “The Underrated, Universal Appeal of Science Fiction,” today during lunch while I was reading something else posted at The Atlantic. Later in the day, I noticed that both Dan Frakes and Jason Snell tweeted links to it—approvingly, I believe.

I don’t disapprove of the article. It’s nicely written and the thesis—science fiction deserves respect!—is well supported. But the topic is awfully stale. Defensive articles like this were thick on the ground back when I was first getting into science fiction in the late 70s. The only difference between those and Beckett’s are the examples of stories that don’t get classified as science fiction because mainstream critics like them. Back then, the examples were Brave New World and 1984; now, they’re The Handmaid’s Tale and… 1984. Some things are evergreen, I guess.

Outside of the articles, though, there are some significant differences between the acceptance of science fiction then and now. First, science fiction has taken over popular culture. As I said a few years ago,

But you have to remember that science fiction was a film ghetto before Star Wars. Not only were the movies artistically bad (for every 2001, there were a hundred Logan’s Runs, and sf was still fighting the legacy of the low-budget BEM films of the ’50s), they regularly failed at the box office.

Take a look at this list of top grossing movies by year. Before 1977, science fiction and fantasy are hard to find; after 1977, they dominate. This may not be giving science fiction writers the kind of literary acknowledgement Beckett wants, but their work is much more likely to optioned for film adaptation, which is not only lucrative, it also provides an opportunity for the work to reach a huge audience.

And it’s not as if there’s no literary acknowledgement. Look at the short bio at the bottom of Beckett’s article:

CHRIS BECKETT is a university lecturer based in Cambridge. His short stories have appeared in Interzone and Asimov’s, and he is the author of Dark Eden and the short-story collection The Turing Test.

I know Beckett’s university position is not as a teacher of science fiction, but he does speak at academic conferences on science fiction, something you’d have been hard pressed to find in the 70s. Yes, there were a few science fiction classes being taught at universities back then. James Gunn was doing it at University of Kansas (there’s now a Gunn Center for the Study of Science Fiction there), but he was a pioneer. Now, science fiction classes are everywhere—the halls of academe recognizing science fiction as a topic worthy of study.

Despite these improvements, I’m sympathetic to Beckett’s lament that people’s eyes glaze over when he introduces himself as a science fiction writer. No one’s more familiar with that situation than an engineer.

Man page followup

When I checked my RSS subscriptions this morning, I found two followups to my recent man page post, one by Nathan Grigg and one by Rob Wells. These came after several tweets and emails on the topic. Everyone has their own favorite way to get at man pages. I don’t think any of the suggestions I was given will become my favorite way, but I thought it worth mentioning some of them. You never know what will click with you.

To recap, here’s the problem everyone wants to solve:

You’re in the middle of typing a command at the Terminal, and you realize you need to look up an option or some other aspect of the command in its man page. You can’t issue the man command without deleting what you’ve already typed, which might be extensive if you’re putting together a long pipeline. What’ll you do? What will you do?1

Nathan’s trick is specific to the zsh shell, but there’s a similiar—albeit slightly slower—technique available to bash users. In a nutshell, Nathan saves the half-written command into a sort of buffer or command stack that zsh has, opens the man page, then pulls the half-written command back after finding what he needed. As Nathan points out, the most useful thing about this technique is

… it is useful beyond just looking at manuals. Often while typing some command, I realize I need a quick mkdir or cd or even ls before I’m ready to execute.

Personally, I wouldn’t use this for reading man pages because I like having the man page in a separate window, but I’ve often found myself constructing a long command only to realize I’m in the wrong directory and have to stop to cd to the right place.

As it happens, there’s a set of keystrokes you can use in any shell that do what Nathan does almost as efficiently. They’re part of the Emacs keybindings that Mac programs have enabled by default.2 Control-U deletes everything on the command line from the cursor back to the beginning, putting it in a special “kill ring,” which is like the Mac’s Clipboard, but separate from it. You can then type cd or whatever command you need, and when that command is finished, bring back (“yank”) the half-written one from the kill ring with Control-Y.

Several people mentioned the Control-U, Control-Y trick. I’d never thought of it for man pages because, as I say, I prefer reading them in a separate window as I look at the command I’m constructing. But it’s a great trick to know when you realize you need to run a command before the one you’re in the middle of building.

Rob’s post describes a couple of techniques for bringing up man pages. First, there’s a LaunchBar search template that uses OS X’s built-in x-man-page:// URL scheme.3

LaunchBar man page search

Invoking this from LaunchBar will bring up the same Terminal window that appears when you use the Control-click method I described. Several people told me about ways they used x-man-page://. It, like open, pbcopy, and pbpaste, is a holdover from the days when Apple appreciated the Unix users among its customer base and provided nice tools for them. Memories…

Rob also mentioned Dash, the multi-language documentation browser from Bogdan Popescu. As I said in a Twitter conversation with Ryan Lane, who also recommended it, I’ve tried Dash but it’s never stuck with me. I should probably give it another look.

I appreciate all the suggestions, including those I didn’t mention here. One thing I noticed about all of them is that they’re very keyboard-centric. I suspect the suggesters were all slightly appalled by the notion of using the mouse or trackpad to bring up a man page. I’m sympathetic to the notion that keyboarding is faster—I’ve certainly created my share of keyboard shortcuts—but I’m not convinced keyboarding is faster in this case. And I’m always cognizant of this bit of wisdom from Bruce Tognazzini:

We’ve done a cool $50 million of R & D on the Apple Human Interface. We discovered, among other things, two pertinent facts:

  • Test subjects consistently report that keyboarding is faster than mousing.
  • The stopwatch consistently proves mousing is faster than keyboarding.

This contradiction between user-experience and reality apparently forms the basis for many user/developers’ belief that the keyboard is faster.

People new to the mouse find the process of acquiring it every time they want to do anything other than type to be incredibly time-wasting. And therein lies the very advantage of the mouse: it is boring to find it because the two-second search does not require high-level cognitive engagement.

It takes two seconds to decide upon which special-function key to press. Deciding among abstract symbols is a high-level cognitive function. Not only is this decision not boring, the user actually experiences amnesia! Real amnesia! The time-slice spent making the decision simply ceases to exist.

While the keyboard users in this case feels as though they have gained two seconds over the mouse users, the opposite is really the case. Because while the keyboard users have been engaged in a process so fascinating that they have experienced amnesia, the mouse users have been so disengaged that they have been able to continue thinking about the task they are trying to accomplish. They have not had to set their task aside to think about or remember abstract symbols.

Keyboarding with LaunchBar to get to a file or application is certainly faster than using the mouse to dig around in folders. I suspect, however, that Control-clicking a word that’s on the very line you’re editing is faster than keyboarding. But maybe I think that because I’m a slow typist.

Update 4/14/14
Benny Kjær Nielsen (you know, the MailMate guy) tweeted me this morning about the adaptive man page command in Terminal’s Help menu. It’s named Open man page for “xxx”, where xxx is the command to the left of the cursor. It’s keyboard equivalent is given as ⌃⌘?, which really means ⌃⌘⇧/.

It’s a technique worth knowing, but I doubt I’ll use it much. Two reasons:

  1. The ⌃⌘⇧ combination feels very clumsy to me. I’m OK with the ⌃⌥⌘ three-key combo because they’re all in a row, but when the Shift key screws up the alignment and makes me have to look down at what I’m doing. I could, of course, change the default shortcut, but that leads to the second reason.
  2. It’s kind of dumb about what it considers to be the command to the left of the cursor. If, for example, you type

    sort -n

    and then type ⌃⌘⇧/, you’ll get a new Terminal window telling you that there’s no man page for the n command. It’s smart enough to not include the hyphen, but somehow not smart enough to know that the hyphen means it isn’t a command.

Since I often find myself partway through a set of options when I realize I need to look something up, this second problem will make the shortcut more a source of confusion than a help. It may work well for you, but I’ll stick with Control-clicking.

  1. I’d like to point out how disappointed I am that no one commented on my Karl Malden reference. Kids these days… 

  2. Unless you’re a vi afficianado who’s changed to its keybindings. 

  3. Link courtesy of Nathan. 

Damped free vibrations

The second simplest vibrating system is composed of a spring, a mass, and a damper.


We’ve seen the spring and the mass before, so let’s talk about the damper.

The image typically used to represent a damper is meant to look like the cross-section of a hydraulic cylinder1 with a leaky piston, a device called a dashpot. You’re supposed to imagine the fluid in the cylinder squirting around the edges of the piston; it doesn’t stop the movement of the piston, but it does slow it down. Strictly speaking, this kind of damping is called viscous damping, but the word viscous is often dropped.

The force exerted by a dashpot is proportional to the speed at which the piston moves and is directed in opposition to the movement, so when we construct the free-body diagram of the mass, assuming both displacement and velocity in the positive [u] direction, we get the figure on the right and this equation of motion:

[-ku - c \dot u = m \ddot u]

where [c] is the constant of proportionality between the damper’s force and the speed at which it’s extended or retracted. The other symbols have the same meaning as in the undamped case.

Rearranging into the usual form,

[m \ddot u + c \dot u + k u = 0]

we get a second order, linear differential equation with constant coefficients. This is—lucky us—one of the differential equation forms that can actually be solved without resorting to numerical methods. It’s common to divide through by [m] and introduce some new variables.

[\ddot u + 2 \zeta \omega_n \dot u + \omega_n^2 u = 0]


[\omega_n = \sqrt{\frac{k}{m}}]

is the undamped natural frequency of the system, which we’ve seen before, and

[\zeta = \frac{c}{2m\omega_n} = \frac{c}{2\sqrt{km}}]

is the damping coefficient.2 It is a dimensionless quantity, because [c] has the units

[c \rightarrow \left [\frac{F}{LT^{-1}} \right ] = \left [ \frac{MLT^{-2}}{LT^{-1}} \right ] = \left [ \frac{M}{T} \right ]]

and so does [2 m \omega_n].

The quantity [2m \omega_n] is called the critical damping constant, [c_c]. The damping coefficient is therefore often defined this way:

[\zeta = \frac{c}{c_n}]

What makes critical damping critical? From a mathematical point of view, critical damping represents a change in the the nature of the solution of the differential equation. John Cook did a good job explaining that in his post on damped vibrations, so I’ll just refer you there. From a physical point of view, critical damping represents the boundary between oscillatory behavior and non-oscillatory behavior. The system oscillates about the equilibrium position only if the damping is less than critical: [c < c_c] or [\zeta < 1]. This is called the underdamped case and is the one we’ll be exploring.3

The oscillatory solution can be written as

[u = e^{-\zeta \omega_n t} \left( u_0 \cos \omega_d t + \frac{v_0 + \zeta \omega_n u_0}{\omega_d} \sin \omega_d t \right)]

where [u_0] and [v_0] are the displacement and velocity at [t = 0], and

[\omega_d = \sqrt{1 - \zeta^2}\,\,\omega_n]

is called the damped frequency for reasons that will become clear soon. The solution can also be written more compactly as

[u = A e^{-\zeta \omega_n t} \cos(\omega_d t - \phi)]

You may recall from our look at undamped free vibrations that the phase angle, [\phi], is somewhat arbitrary—it’s value is determined by when we decide to say [t = 0]. Therefore, we can choose a starting time that makes [\phi = 0] and simplify our equations and graphs even more.

The solution for [\phi = 0] and [\zeta = 0.1] looks like this, a decaying sinusoid:

Damped decay

The exponential term acts as an envelope that lowers the amplitude of the oscillation as time marches on. The points of tangency, where the black solution curve touches the dashed blue envelope, are where [\cos \omega_d t = 1]. The upper points of tangency are spaced

[T_d = \frac{2\pi}{\omega_d} = \frac{2 \pi}{\sqrt{1 - \zeta^2}\,\,\omega_n}]

apart, as are the lower points of tangency. [T_d] is the damped period of the system. For small values of [\zeta], [T_d \approx T_n] and [\omega_d \approx \omega_n].

If you zoom in, you can see that the maxima and minima of the curve don’t quite match up with the points of tangency.

Damped decay detail

It can be shown, however, that the time between successive maxima (or successive minima) is the same as the time between successive points of tangency. This is very convenient if you want to measure the damped period of a system experimentally. When you’re monitoring the vibration of a system, the maxima and minima are relatively easy to determine—the points of tangency are impossible.

Similarly, the amplitude ratio between successive maxima is equal to the amplitude ratio between successive upper tangency points. If we call each maximum [u_m], where [m] is an integer, then

[\frac{u_m}{u_{m+1}} = \frac{e^{-\zeta \omega_n t}}{e^{-\zeta \omega_n (t + 2 \pi/\omega_d)}} = e^{2\pi\zeta\omega_n/\omega_d}]

If we take the natural logarithm of both sides, we get

[\delta = \ln \left( \frac{u_m}{u_{m+1}} \right) = \frac{2\pi\zeta\omega_n}{\omega_d} = \frac{2\pi\zeta}{\sqrt{1-\zeta^2}}]

which is called the log decrement of the damped oscillation. We can determine the damping coefficient experimentally by measuring the displacement at successive maxima, taking the natural log of their ratio (that’s [\delta]), and calculating [\zeta] by a rearrangement of the above equation:

[\zeta = \sqrt{\frac{\delta^2}{4\pi^2 + \delta^2}}]

I’ve always thought of the damping coefficient and log decrement as conceptually similar to the coefficient of restitution of a bouncing ball. In both cases, we’re tracking the decay of successive “high points” in the motion of an object. They also represent a loss of mechanical energy from the system, a point we’ll discuss in a later post.

When we looked at undamped systems, we found that their behavior is governed by their natural frequency, [\omega_n], and that we can determine [\omega_n] experimentally without knowing either [k] or [m]. Now we see that the behavior of a damped system is governed by [\omega_d] and [\zeta]4 and that we can determine them experimentally without knowing [k], [m], or [c].

Mechanical systems have springy parts and they have mass, but very few have actual dashpots. What good is all this math if it doesn’t represent actual equipment? We’ll talk about the kinds of real-world things we model as dashpots next time.

  1. This is sort of like the kind of hydraulic cylinders you see on construction equipment, but it isn’t being driven by pumps. All the fluid stays in the cylinder—it just moves from one side of the piston to the other as the piston moves back and forth. 

  2. In case you’re rusty with your Greek alphabet, that’s the letter zeta

  3. Although it’s called underdamped, you shouldn’t think of it as having some deficiency. There can be plenty of damping in an underdamped system. The “under” just means the system oscillates. 

  4. And the natural frequency, but once we have the damped frequency and the damping coefficient, the natural frequency is easy to calculate.