Can you feel my heart beat

Can't remember anything at all

I've been listening to "Higgs Boson Blues" by Nick Cave and the Bad Seeds on repeat for about a week now. I recommend especially this version from Austin City Limits in 2014:

Who cares— / Who cares what the future brings?

How many times have I played this song on repeat now? Dozens and dozens and dozens of times. Looking for the secrets. Interpreting the signs. Holding the threads in my hands, trying to braid them back together.

He's got the real killer groove / Robert Johnson and the devil / Don't know who's gonna rip off who

I've invested time—consciously and unconsciously—thinking about this song. It floats back there in my mind, droning and droning. Nick Cave floated into my consciousness by way of Tom Waits on Pandora—and it makes sense to me. These aren't your prototypical band leaders—and yet, what hill wouldn't I follow either of them over, as they growled whatever it is that they were growling.

Take the room with a view / I see a man preachin' / In a language that's completely new

On repeat. On repeat. On repeat. On this loop, this phrase catches my ear; on that loop, another one instead.

There is a Led Zeppelinesque feeling of depth to the song that evaporates, Led Zeppelinlike, with a few quick hits of a spade. Nothin' but dirt under there. But that title and introduction—physics—and the nonlinear story afterwards—mystics—wrap themselves around me like a vine. What were you doing peering into a song for meaning anyway? Like a vine, you can chop it off, and it grows back anyway.

Drivin' my car / Flame trees on fire

What does it mean? Does it mean...

Can you feel my heart beat? / Can you feel my heart beat?

It's at this point where the music has mostly trailed off yet

Can you feel my heart beat? / Can you feel my heart beat?

there is still a current pressing forward.

I don't get Nick Cave's stage presence at all. It's got a cult fervor to it—and go ahead and count me among the cult's members. I'm not sure you'd see me up there in the front row offering my hand to his chest while he

Can you feel my heart beat? / Can you feel my heart beat?

offers himself to the crowd—but I can't exactly say that I wouldn't be there either. It's awkward if you analyze it, but if you just float and float and float and feel it, the rises and falls and short bursts and long lulls all pull you downstream.

Drivin' my car / Down to Geneva

At some point the float trip has ended, slowly, the current spread amongst the delta mud, and who's to say what has transpired along the way?

Three minutes

I'm working on a case about Bill Miller in finance class this week. To supplement the info in the case I've been looking for some other articles about him, his investments, etc. Naturally, I fixated on the references to other books and people in the articles—it's what I do. Follow the graph, etc.

In this 2020-Q2 newsletter from Miller Value Partners is a great line from A.E. Housman (about whom I knew and know nothing):

Three minutes' thought would suffice to find this out; but thought is irksome and three minutes is a long time.

Story of my life right there.

Doing a little digging around, the line comes from the introduction (p. xi) of his edited edition of Juvenal's Saturae, available here from the Internet Archive.

More rigor does not mean more process, more process does not mean more rigor

I got really pumped up to die on this hill (again) today, but managed to back off at the last minute. It might be aerospace or technology esoteric, it might not be—I don't know.

"More rigor" does mean "more process". And "more process" does not mean "more rigor".

I worked ever-so-briefly in a software quality assurance organization with some respectable and respected engineers. Here's what happens when you value—abstractly value—process: you get more process. My analogy for it was always something like this. What does Lebron James get paid for? Making more baskets. What do process engineers get paid for? Making more processes.

Not bettermore.

More process works for a while—until it doesn't. There's a sort of inverted-U of usefulness. There's Wild West on the left side where you're just slappin' things together—great for the garage and the protoshops, less so if you want build things that people use, especially to put themselves in at tremendous speeds and altitudes. There's total lockdown on the right side where you don't move don't think don't breathe don't achieve [1].

The sweet spot is there in the middle somewhere. It's never a stable optimal point—the people change, the technologies change, the requirements change, the certification authorities change, your understanding of the problem will change, and so on. But the answer is not more unless you're flat-out missing things. In fact, as you add more, you are at some point begging for steps to be missed or mangled, for process steps to fall behind reality, for malicious compliance out of frustration.


[1] Too much is not enough / I feel numb

Diamond League

I have achieved my [checks notes] only stay-at-home accomplishment so far: made it to the top league in the weekly leaderboard on Duolingo (kirkkittell).

As I've mentioned somewhere around here, it hasn't been easy to focus the last few months. That's hardly a controversial thing to say—is anyone focusing? Send detailed instructions if you are. I don't know how people with kids are managing it. Running through a few lessons on Duolingo in the morning is one of the few things I've been consistent about—I'm on a 102-day streak now. I've been slowly walking up weekly running distance to 30 km/week and pushups to 220/day—bumping them up every week (recently) by 5 km/week and 10 pushups/day. The increase will eventually collapse under its own weight, but in the meantime I'm trying to grab onto the things that I can and fix them in place, then build something around them.

There is a feeling of the days being lost to routines like this—do this in the morning, do that after work, do this before bed, repeat repeat repeat repeat, where did the month go? However. I've lost plenty of days to irredeemable low spots, so if Chinese lessons and running and pushups keeps the world on track, I'll go with it.

Despair of not doing

I watch Li Ziqi and I despair.

The latest one involves turning scrap wood reclaimed from a barn in the forest into a fence around a pond, breaking rocks to repair the top level of the pond, planting hundreds of seeds and starting them in a greenhouse (a self-made greenhouse, but there's really no reason to point that out because everything on this channel is self-made, and it's almost jarring when something pops up that isn't self-made, like the drill used to set the wedge in the rocks), then screencutting through a few seasons to show the seeds becoming seedlings becoming fruit-bearing plants, and the fruits and vegetables and leaves and seeds being turned into several courses of food.

I could do that.

[pause]

[sip some water]

[look nonchalantly away from the screen and notice something else in the room, anything else in the room, hoping no one saw me having that thought, because it's the kind of thought that should result in an action or, in the case of Li Ziqi, should result in about 40 actions, many of them chained together but in overlapping sequences that cover minutes and hours and days and seasons]


There is—scarequotes inbound—"more time" now because I don't have to drive to work. There should be time available to start, execute, and finish projects at home. Where does that time go?

Ah—that's the wrong question.

Thoreau, Walden, "Excursions": "As if you could kill time without injuring eternity."

It comes down to principles—... I'm not sure how to finish that one. The principle isn't about filling the time, or about Getting The Most Out Of Your Life, or... I'm not even sure it's about principles now. It's just fun to have ideas and make them real. It's not fun to infinitescroll through social media—you get the dopamine while doing it, which is like fun I suppose, but then the shame hangover, which is certainly not like fun. It's more comfortable to stay inside than to go outside where it's hot and humid; it's more comfortable to stay inside and read some junk articles and to stay inside and finish calculating the material list for the backyard steps.

What to do about it is obvious. Decide to do what needs to be done, and do it. There is no magic.

Unnecessary code, finance class edition

Ever since classes went fully online in the spring semester, I've had a horrible time concentrating during lectures. There's the usual self-caused distractions—the phone, the browser, literally any other room of the house besides the one with the lecture playing—but even when I'm there, trying to focus like a Good Boy, it's really hard to lock in and take something from the class. Since the classes are three hours long, only twice a week, it's a real grind trying to force focus. Don't look to me for advice on how to do it.

Except today—I tried something accidentally. In the finance class we were doing some calculations on bond values, and I went to Excel like I normally would for calculations. And we occasionally needed to shift the term length on the bonds, and calculate the annual value like we would on a timeline, and Excel was just feeling a little too stiff—changing the number of rows or columns or whatever on the fly, manually. And I was focusing that great anyway, so I popped open Eclipse and started trying to create the calculations in Python instead.

click

I never really got the thing to do much yet (finance_sandbox.py) but there was a different kind of focus that set it once I started doing it. Setting up classes and thinking about what attributes of the bonds I had to capture from the lecture, trying to quickly think of abstractions so that I could calculate problems with different features from the lecture—having to create and re-create the most basic aspects of the things we were learning about turned out to be very helpful.

A few IPT case studies from Integrating PM/SE book

2020-07-02: Now reading: Integrating Program Management and Systems Engineering

I just finished Chapter 7 of this book, which used the F/A-18E/F program—from ol' McDonnell right here in St. Louis—as a case study for how to integrate project management and systems engineering via integrated product teams (IPTs). I've never really thought much about the whys and wherefores of IPTs. They're just part of the air that you breathe on large aerospace/defense programs, projects decomposed into functional teams and subteams and so on. I wasn't sure if IPTs are still in style or not—I think we're all agile now—but clearly aerospace companies are putting that in their job postings, so it must still have some currency.

Anyway. You either have access to that book or you don't. But it is drawn heavily from other references that are readily available. If F/A-18E/F is as good of an example of how to integrate systems engineering and program management as the book describes it—ahead of time, under budget, under weight (in a good way)—then it's something worth learning more about, to see how they did it.

  1. Bailey, E. (1998, April 9). The F/A‐18E/F: An Integrated Product Team (IPT) case study. Institute for Defense Analyses. IDA NS D‐8027. https://www.ida.org/research-and-publications/publications/all/t/th/the-fa18ef-an-integrated-product-team-ipt-case-study
  2. Bailey, E., Nash, S., & Woolsey, J. (1999, January). Integrated product and process development case study, Development of the F/A‐18E/F. Institute for Defense Analyses. IDA D‐2228. https://apps.dtic.mil/sti/citations/ADA379633
  3. White, J. W. (1997). Application of new management concepts to the development of F/A‐18 aircraft. Johns Hopkins APL Technical Digest, 18(1), 21–32. https://www.jhuapl.edu/Content/techdigest/pdf/V18-N01/18-01-White.pdf
  4. Younossi, O., Stem, D., Lorell, M., & Lussier, F. (2005). Lessons learned from the F/A–22 and F/A–18E/F development programs. Rand Corporation. Report MG‐276. ISBN 0‐8330‐3749‐8. https://www.rand.org/content/dam/rand/pubs/monographs/2005/RAND_MG276.pdf

Overabstraction of the Backyard Steps Project and Backyard Leveling Project

I'll tell you one of my personal hells:

Overabstraction.

"Ce qui vaut la peine d'être fait vaut la peine d'être bien fait". ("What is worth doing is worth doing well".) You've heard that one before. That's just a gateway drug, though. Doing something well leads to wanting to understand the patterns and causes and then, once you can start to get a grip on the classes and methods of that something it's only natural to want to start building a machine of some sort to do that something for you.

(I'm saying "you" but I know I'm thinking "me". Bear with me on this one. I need to talk about this like it's your problem. It's easier to deal with, etc.)

My big Home Project now is building some steps from the back door of the garage down to the back yard—the Backyard Steps Project. In isolation: it's not that difficult of a problem.

Plot twist.

My wife would also like the backyard to be leveled—the Backyard Leveling Project. In its current state (which I was tempted to call its "natural state", although this would be a casual lie because it was certainly modified during the installation of these suburbs in the ~1960s, and perhaps even before that, I don't know) there is a downslope from north-to-south and from west-to-east. As the proud owner of a shovel (a collection of shovels, really, don't judge), the solution to the leveling problem is simple: take a shovelful of dirt from the high side and put it on the low side. Repeat until there is no high side or low side.

Simple specification, simple implementation. I'd crawl on my knees and beg for a spec to be this easy to implement at work. However, there is some coupling between the Backyard Steps Project and the Backyard Leveling Project that is giving me a headache.

How many steps does one need? Assuming you care about your user (you should—I do), the steps should be an equal height—an obvious assumption, sure, but we're just building out the model here. Now you have h_step, and n_steps * h_step will be the total elevation change (h_total) from the landing at the top (z_top) to the landing at the bottom (z_bottom); or, in reverse, the total elevation change will give you n_steps, just divide h_total by h_step. z_top is fixed—the garage slab is not going anywhere. But z_bottom is z_backyard, and the value of z_backyard to use is its future value, after leveling. h_step—we'll limit the values for this one between 6 and 7.5 inches.

And, to some extent, since setting z_bottom affects the rise-over-run of the whole set of steps, z_bottom also affects d_step, the depth (or amount of run) of each step—and we'll also assume d_step to be equal for all steps. But this can be somewhat mitigated by changing the length of the top and bottom landing. (w_step, the width of the path, was fixed at 60 inches through what we might call stakeholder feedback.)

A diagram would be helpful, no?

[TBD: diagram]

I've also gathered measurements (good ol' stick, string, and bubble level) for the project. The measurements break down into two groups: (1) the ground leading from the garage door to the edge of the deck (a single arc); and (2) the back yard measured in 2-ft increments 32 feet south of each deck pier (so, basically, six arcs of data). Call it data_1 and data_2 for reference.

data_1 is easy because it is just measured from the deck (the top edge of the deck planks) down to the ground with a (large) ruler. It assumes that the deck level is fixed because otherwise why bother. It also assumes that the east-west slope here is zero, which is not accurate, but not far off—since this bit is not part of the yard leveling scheme, it doesn't need to be accurate, I'm not accounting for the volume of dirt to move.

data_2 was massively annoying to capture. I attached the string a clamp on the wood supports one inch above each of the concrete piers to provide a reference height for each series of measurements. But each pier has a different absolute height—so, essentially, there is a z_string for each series of measurements that defines the height of the fixed string above the ground to give the raw measurements.

h_pier16.0014.5016.0016.2515.5018.00
h_string_offset1.001.001.001.001.001.00
z_string17.0015.5017.0017.2516.5019.00
y_rawz_1_rawz_2_rawz_3_rawz_4_rawz_5_rawz_6_raw
inchesinchesinchesinchesinchesinchesinches
0.017.015.517.017.316.519.0
24.023.020.522.021.021.522.0
48.029.529.029.528.528.031.0
72.035.034.036.033.034.534.0
96.039.040.040.537.538.040.0
120.045.545.545.043.543.044.0
144.049.549.049.046.047.048.0
168.054.053.055.049.050.051.0
192.056.057.059.052.052.055.0
216.057.558.060.055.055.058.0
240.063.061.063.059.058.059.0
264.064.062.064.061.061.061.0
288.064.063.065.062.064.064.0
312.071.069.067.069.067.068.0
336.073.071.071.070.069.071.0
360.077.077.073.077.073.075.0
384.077.078.078.078.080.077.0

This all needs to be adjusted so that the height measurements are taken from the same level—deck level.

h_deckboard0.500.500.500.500.500.50
h_beam9.139.139.139.139.139.13
h_post25.7531.8836.5044.5050.6355.50
h_string_offset1.001.001.001.001.001.00
z_ref_offset34.3840.5045.1353.1359.2564.13
y_rawz_1z_2z_3z_4z_5z_6
inchesinchesinchesinchesinchesinchesinches
0.0-51.4-56.0-62.1-70.4-75.8-83.1
24.0-57.4-61.0-67.1-74.1-80.8-86.1
48.0-63.9-69.5-74.6-81.6-87.3-95.1
72.0-69.4-74.5-81.1-86.1-93.8-98.1
96.0-73.4-80.5-85.6-90.6-97.3-104.1
120.0-79.9-86.0-90.1-96.6-102.3-108.1
144.0-83.9-89.5-94.1-99.1-106.3-112.1
168.0-88.4-93.5-100.1-102.1-109.3-115.1
192.0-90.4-97.5-104.1-105.1-111.3-119.1
216.0-91.9-98.5-105.1-108.1-114.3-122.1
240.0-97.4-101.5-108.1-112.1-117.3-123.1
264.0-98.4-102.5-109.1-114.1-120.3-125.1
288.0-98.4-103.5-110.1-115.1-123.3-128.1
312.0-105.4-109.5-112.1-122.1-126.3-132.1
336.0-107.4-111.5-116.1-123.1-128.3-135.1
360.0-111.4-117.5-118.1-130.1-132.3-139.1
384.0-111.4-118.5-123.1-131.1-139.3-141.1

There is one more transformation that I did, that might be overkill—but what the hell. As mentioned at the start: if it's worth doing, it's worth overdoing. The distance measured south of the deck is really the distance along the ground, not the distance measured along the north-south axis—so a little trigonometry needs to be done to pull out the y-axis (north-south axis) component.

y_1y_2y_3y_4y_5y_6
inchesinchesinchesinchesinchesinches
0.000.000.000.000.000.00
23.223.4723.4723.7123.4723.81
46.345.9246.2746.5046.5846.06
69.769.3969.3770.0869.6869.87
93.492.6392.9593.6593.4293.11
116.5115.99116.52116.89116.90116.77
140.1139.73140.19140.76140.56140.44
163.7163.40163.43164.57164.37164.25
187.6187.06187.09188.38188.29187.91
211.6211.04211.07212.19212.10211.73
234.9234.85234.88235.86235.91235.71
258.9258.83258.86259.78259.72259.62
282.9282.81282.84283.75283.54283.43
305.9306.05306.76306.71307.35307.10
329.8329.97330.42330.69331.26330.91
353.5353.20354.34353.65354.93354.57
377.5377.18377.81377.63377.88378.49

Then add in the distance between the piers for x-axis (east-west axis):

x_1x_2x_3x_4x_5x_6
inchesinchesinchesinchesinchesinches
0.0071.00142.50214.13285.50349.50

Then, at this point, I've got the transformed (x,y,z) field data for leveling the backyard.