I think it’s useful to coin pithy terms for phenomena that all software engineers experience but don’t have a name to put to. Our term of the day is “finger trap”.
I think this is my favorite Internet meme ever.
Yeah, Hong Kong, we actually have a problem with Communist oppression here, too. Notably in our universities, but metastasizing through pop culture and social media censorship too. They haven’t totally captured the machinery of state yet, but they’re working on that Long March all too effectively.
And you are absolutely right when you say you need a Second-Amendment-equivalent civil rights guarantee. Our Communists hate that liberty as much as yours do – actually, noticing who is gung-ho for gun confiscation is one of the more reliable ways to unmask Communist tools.
We need to be the America you think we are, too. Some of us are still trying.
Nobody stepped up to design a Loadsharers logo, so I did it myself. Here it is:
Yeah, I’m not much of a graphic artist, but I can do a semi-competent job of whacking together a simple logo when I need to. If you’re an actual pro and think you can fix this or do better, have at it. The
XCF SVG I made this from is in the Loadsharers repository at https://gitlab.com/esr/loadsharers
I can walk again.
Wearing a joint-immobilizing boot brace, so I lurch around with a gait even more graceless than my usual palsied semi-stumble, but I can walk. And shower. And make my own breakfast. Hallelujah!
Better news: my prognosis is good. The joint had osteoarthritic damage that may be trouble down the road, but I’ve been osteoathritic in both feet for years now without symptoms. The big good news is that the joint cartilage wasn’t damaged, so I should get full use of the ankle back.
Boot brace for three weeks, physical therapy to strengthen the ankle after that. I won’t be back in kung-fu class for a while. Still, the medical level of this saga is going as well as could be expected.
The financial level, not so much, We got socked with a surgery bill of $2,238 today. Followup and PT…I don’t know what that will cost,but it won’t be cheap.
What’s worse, healthcare.gov chose this perfect time to yank our ACA subsidy because we can’t document the regular income streams. Of course we can’t document them because we don’t have them. Which means we have to pay another $2000 to keep our existing coverage for just the next month, and the bureaucrats have told us to apply for Medicaid. Which we may not be able to get before open enrollment in January.
This means the amount of money I need to pull in without burning savings just went up by $2000 a month. Which is doing a good job of keeping me focused on getting Loadsharers off the ground. If it does well, I’ll do well, and have successfully attacked the larger problem of LBIP funding.
There’s going to be a Linux Journal article, and at least one technology-press interview. I’ve even (gasp!) tweeted about this, something that happens approximately once every other blue moon.
I have a list of 11 people who have taken the pledge. I think we need around 11,000 (mostly supporting LBIPs other than me) to make a real dent in the problem. So please, go out and prosyletize to your tech-industry friends, and ask them to spread the word. We need this to go viral.
Anybody who has visited my Patreon page should know that I have two special support tiers.
At Bronze ($20 per month) level, you get included in the credits of the project pages for all my solo stuff. Here’s a recent example.
Today I’m announcing two new perks for Institutional ($100 permonth) supporters. This tier is intended for people with corporate budgets behind them.
When you sign up, you get to chose a name (possibly your corporation’s) and at your option a URL to back the name; this will be included in the credits pages. You will also get an individual shout-out in the “Acknowledgements” section of my forthcoming book “The Programmer’s Way: A Guide to Right Mindset”
By joining my feed at Institutional level, your company can demonstrate good Internet citizenship through supporting the often thankless and obscure work needed to keep the infrastructure humming.
Thanks in advance for your support.
A day or so after the not-so-thrilling last installment of my medical troubles (previous post), I get my hands on a knee scooter. Rented from a local pharmacy.
This is a big improvement over the wheelchair. I’m more mobile on it, and can pee standing up. If you think that last bit doesn’t matter, pray you never find out what an epic getting on and off a toilet seat is when you don’t have the use of your dominant leg.
Unfortunately, life is tradeoffs. You can fall off a knee scooter; I have, twice. No serious harm done, but that kind of thing is another increment of pain and exhaustion in a process with quite a sufficiency of those, thank you.
The ankle started hurting yesterday, seriously enough that I briefly considered actually taking a Percocet, but only when it was horizontal in bed. I think my sensory feed from that extremity must still be a bit disturbed by the aftermath of the nerve block, because it took me almost a day to figure out that the pain was due to external pressure from some of the support scaffolding in the ankle dressing.
I think those rigid parts have shifted around in an unhelpful way due to my crawling around and/or mounting the knee scooter. We’re going to try to get an appointment at the orthopedist’s office today to have someone there inspect and rewrap the thing.
Which means I’m going to have to deal with getting down (and later up) the steps in front of my house. Yeek! Neither scooter nor wheelchair is well adapted to this; I’ll probably have to bust out the kneepads and crawl again.
It hasn’t been all bad. Saturday a couple of my friends from our Friday night game group came over to boardgame with me; Xia: Legends of a Drift System. A good time was had by all.
My far friends on the net have come through as well. My Patreon feed is $356 per month thicker than it was a week ago. And there have been a bunch of one-off donations. John Carmack (yes, the John Carmack) sent $1000, for which I am humbly grateful.
SELF is definitely a scrub, but we’re making plans for me to video in my keynote. Topic change: I’m going to talk about infrastructure sustainability considered as a problem of load-bearing people, and the fact that the hacker culture doesn’t have any customs about how to support our old maintainer/warhorses or arrange an orderly succession when they die in harness.
I’ve actually been worrying about this problem for years, but mostly because of load-bearing people near me who weren’t me. Now my attention is seriously focused. :-)
I am able to work, and a good thing too or I’d be going bonkers. NTPsec is in a bit of a quiet period right now; we’ve delivered NTS, and the next big push I have in mind will have to wait until Go has a TLS 3.0 binding. So I’ve been making progress on the Go port of reposurgeon.
The Patreon is up to $1709 now. At $2000 it would cover monthly mortgage and bills; that’s starting to look attainable, which is a damn good thing given that I still have no clearer idea what the medical stuff will end up costing than “a lot”.
I increasingly think that software users and engineers who care about the infrastructure commons they rely on not collapsing out from under them are going to have to adopt something like the old custom of tithing, in self-defense.
In simpler times, before state-welfare schemes or insurance companies, community citizens in good standing were often religiously required or strongly encouraged to “tithe” – give a small fraction of their income to a church expressly for relief of the poor.
Nowadays we can cut out the middlemen and attendant risk of corruption. We have Patreon and SubscribeStar. Can we grow a social norm that hackers with regular jobs in the profit-making sector should use services like these to split (say) $30 a month among three infrastructure developers of their choice?
Yes, I am asking this for me, now. But I noticed the problem before it was personal. The problem is bigger than me, and the solution should be too.
The point of suggesting a fan-out of three is to avoid a situation where all that goodwill gets captured by a handful of hackers with high visibility (like, er, myself), and people who want to help have a reason to seek out developers who are doing important work in more obscurity.
UPDATE: A few hours after I initially posted this, I went in in to have my dressing remade – something had gone awry inside it and was griping my foot. A mere resident was enough for that, but since I was there anyway Dr. Miller quite properly came for a look-in.
It was pretty amusing to see the “WTF?” expression on his face when he got a look at the week-old incision site on my foot. Completely healed over, no drainage, the only way to tell there’d been an 5-inch-long entry wound was by the purple stitches. As a friend of mine who’s a GP put it on Saturday, contemplating the place on my scalp where I’d gotten a laceration from that fall two weeks before that required three surgical staples, “Who are you? Wolverine?”
Good genes. Goes with the factory-installed brawler package. Makes me guardedly optimistic about the cartilage in the joint repairing itself. Dr. Miller hadn’t been planning to even see me until the 25th, but now he wants the stitches out a week ahead of the original schedule.
And still later in the day J. Storrs Hall (yeah, the nanotech pioneer guy) showed up on my doorstep with a knee scooter his wife had had to use for a while after knee surgery. Means we can stop renting one.
Thanks to everyone who joined my Patreon feed or upped their contributions. I’m still worried, but a little less so now.
Some good news. The post-op pain has stabilized at a level where the occasional Tylenol will handle it nicely. If Dr. Wilson the anesthesiologist is listening, damn! You are good at your job. The timing of the fadeout on the nerve block spared me agony without overdoing intrusive chemicals. This means I will not have to touch the opiates, an outcome for which I am deeply thankful.
The kneepads I ordered yesterday arrived this morning. Big win – crawling doesn’t hurt now, which improves my options. Also helps with dismounting to the floor off a toilet, which is one of those things you will never realize is a big deal until you have to do it.
But the biggest win is the real wheelchair. My mother is connected to a neighborhood non-profit in West Chester that loans out this kind of equipment. When she first went there the only visible option was a service chair, a wheeled chair designed to be moved by a nurse or assistant rather than to enable the user to self-propel, so that’s what she brought back.
It was awful. A service chair doesn’t cope well with rugs or doorsills. The caster-like wheels on the front are perverse; any kind of turning or backing motion inevitably leaves them in a twisted state that make maneuvering nigh-impossible unless the person moving the chair can brute-muscle it around, which Cathy can’t do.
Mom went back and found out about the basement where they keep the good stuff, and now I have a real wheelchair – that is, the kind designed to be driven by the user’s arms. Massive improvement! The lesser part of it is that the big wheels cope better with sills and rugs; the much greater part is that I can move myself around. Having some autonomy back is, for someone with a psychology like mine, as precious as jewels.
Reduces the burden on Cathy, too. Hoicking my 245lbs around in that service chair was barely within the limits of her strength, hard work. I feel better because I can take that load off her now.
Excuse me while I wheel myself out to the kitchen for a ribeye steak from the Outback. And if, dear reader, you fail to comprehend that this, too, is therapy, you are certainly not qualified to take care of the likes o’ me.
Still trying to get my hands on a knee scooter.
EDIT: Tale continued in next post…
Today I had to – literally – crawl from my wife’s car to my house. Because I couldn’t walk. Life is what happens while you were making other plans.
About six months ago I sprained my right ankle in kung fu class. It gave me occasional pain, mostly in cold weather, but I thought it was healing and I could just let it heal. Until about two months ago when I was out with friends on a chilly evening and my ankle folded up under me, just lost the power to support me entirely.
I escaped serious injury from the concrete pavement because I am really good at falling down without hurting myself. This is a skill you learn in early childhood when spastic palsy compromises the motor control in a leg. But it meant I had a prompt need to find out what was going on in there.
A couple of visits to doctors and an MRI scan later we determined that I had developed one of the more unfortunate possible sequelae of a sprain, a thing called an osteochondral lesion. This is what happens when an area of bone in the load-bearing area of the joint erodes away, so the cartilage above it is no longer supported. If the unsupported cartilage is then damaged, the long-term result can be crippling arthritis of the joint.
In my case, it seemed I had gotten lucky. The cartilage seemed undamaged in the MRI images. The indicated procedure is to go in with an arthroscopic probe and squirt synthetic bone into the lesion. Once it hardens it can support the cartilage so it doesn’t take additional damage.
I waited nearly a month for the surgery. Two weeks ago, while still waiting, my ankle folded under me as I was cooking breakfast. This time I wasn’t so lucky. I tucked in the right way to avoid injury from the floor, but the back of my head hit an errant chair leg, producing a laceration that bled copiously on the kitchen linoleum.
I picked myself up, applied pressure with a towel, called my wife, and informed her that when her errand was done she’d need to take me to the ER. A short but extremely expensive visit later I returned with three staples in my head and an MRI scan reassuring everyone that I probably hadn’t taken any permanent damage.
I think the medical staff got that before the MRI, because my main coping mechanism for hospital stress is wry humor aimed to make the people attending me laugh. I do it because this helps me feel in control of my situation, but in this particular case it conveyed something else that was useful. Comic wryness is, after all, pretty much impossible to maintain when you’re concussed or shocky.
Home again home again. It’s nice that even at 61 I’m a physically tough person with a high pain threshold and a thick skull who is actually rather difficult to injure – my school name over at the kung fu kwoon is “The Mighty Oak”. And I like that I can be self-reliant and stoic under stress. But thank you, I’d prefer not to have this confirmed by repeated injuries…
I had that surgery about eighteen hours ago. And ended up crawling from my car because none of the medical people talked about or planned for my post-operative problems until after I was out of anesthesia. Pain management was as far as they got.
It was not made clear to me in advance that I wouldn’t be able to put any weight on the joint for a minimum of two weeks, at risk of compounding my troubles. A nurse handed me a pair of crutches as an afterthought, but everyone’s specialties we so siloed that it didn’t occur to anyone to ask if I knew how to use them, let alone whether the impaired motor control in my uninjured leg might disqualify me.
So now it’s oh-dark-thirty the next morning, I’m writing this because the anesthesia and the four hours or so of shut-eye after I got home have left me all slept out for the moment, and I’ve learned from experience that quietly coding or writing until I’m tired enough to sleep again is better for me than tossing and turning.
I was scheduled to give the main keynote at South East Linux Fest on the 14th (this was well before I even knew I was going to need surgery, let alone how close to the event it would be). I’d have to do it from a wheelchair, now. I don’t have a wheelchair yet; we’re hoping to get one tomorrow. It may not be practical at all depending on my medical state, and I can’t even get my post-op check until after SELF. It’s hard to predict whether I’ll be able, and in a mere ten days I don’t think the odds are very good.
Part of the reason this is a public blog post is as my subjunctive apology to everyone who was expecting to see me at SELF, in the all-too-likely event that I can’t be there. Right after I post this I’m going to put a link to it on SELF’s IRC channel and recommend to the organizers that they find someone else to keynote.
I’m not entirely sure a wheelchair will fit in the corridor and through the doors of my house. Until I can verify that, I move by knee-walking or crawling. Besides forcing one to learn how to fall well, another perverse benefit of a palsied leg (or legs) is that the body compensates by making the arms and shoulders abnormally strong; this is helping me now as I frequently have to hoist myself around by main strength. Just getting from the floor to a toilet seat isn’t entirely trivial even so.
I’ve ordered a pair of carpenter’s kneepads for next-day shipping from Amazon. Improvise, adapt, overcome!
Cooking isn’t practical; the ritual of The Breakfast is denied to me until I’m back on my feet. Fortunately I can sit at my desk and type with my right leg elevated, as I am now doing.
There’s no real pain yet; the nerve block is still operating. That will probably change within the next 24 hours. When it does, there’s a vial of Percocet (oxycodone and acetaminophen) pills a’waitin. Which I’m going to try hard not to take, because opiates scare me shitless. Still, my stoicism has limits and they might be tested this time.
There was some damage to the cartilage. The orthopedist said that if it fails to heal well I may need an ankle joint replacement. I am guardedly optimistic about this, as I do have a history of healing quickly and well from trauma (that nasty scalp laceration cleared up inside of a week). But the downside could be dire.
Finally…if you’ve ever thought that you might join my Patreon feed, now would be a really good time. This…adventure..has blown a $6000 hole in my budget and the expenses aren’t over yet. There’s that post-op check at minimum, and probably physical therapy afterwards, and that’s if all heals well; otherwise it’ll be much, much more expensive.
UPDATE: For the rest of the story, read the next post…
Once again I will be at Penguicon and hosting a party for all friends of this blog. This coming Friday evening, room number not yet known, it will be posted at the con.
Those of you who participated in the design of the Great Beast may be interested to know that I expect to receive its successor at Penguicon – a Greater Beast built from a 64-core Threadripper chip. The machine might well be at the party.
UPDATE: room 507, 9pm, Friday
I’ve been meaning to do something systematic about losing my overweight for some time. last Thursday I started the process by seeing an endocrinologist who specializes in weight management.
After some discussion, we developed a treatment plan that surprised me not at all. I’m having my TSH levels checked to see if the hypothyroidism I was diagnosed with about a year ago is undertreated. It is quite possible that increasing my levothyroxin dose will correct my basal metabolic rate to something closer to the burn-food-like-a-plasma-torch level it had when I was younger, and I’ll shed pounds that way.
The other part is going on a low-starch, high protein calorie-reduction diet, aiming for intake of less than 1500 calories a day. Been doing that for nine days now. Have lost, according to my bathroom scale, about ten pounds.
I’d have done this sooner if I knew it was so easy. And that’s what I’m here to blog about today.
I wouldn’t have posted this if the comment thread on “The sad truth about toasters” hadn’t extended to an almost ridiculous length, but…
I dearly love classic American breakfast food. I delight in the kind of cheap hot breakfast you get at humble roadside diners. I think it’s one of the glories of our folk cuisine and will cheerfully eat it any time of the day or night.
I posted a fancy breakfast-for-two recipe a while back (Eggs a la ESR). What follows is the slightly plainer breakfast I make for myself almost every morning. It’s the stable result of a decades-long optimization process – I haven’t found a way to improve it in years.
I bought a toaster today.
I didn’t want to buy a toaster today. About ten years ago I paid $60 for what appeared to be a rather high-end Krups model in accordance with my normal strategy of “pay for quality so you won’t have to replace for a good long time”, an upper-middle-class heuristic that I learned at my mother’s knee to apply to goods even as mundane as light kitchen appliances.
I had reason for hope that I would get a well-extended lifeline for my money. I recalled the toasters of my childhood, chrome and Bakelite battleships one just assumed would last forever, being passed down generations. “Luke, this toaster belonged to your father…an elegant weapon from a more civilized age.”
Alas, it was not to be.
One of my long-term projects is cleaning up the Unix manual-page corpus so it will render nicely in HTML.
The world is divided into two kinds of people. One kind hears that, just nods and says “That’s nice,” having no idea what it entails. The other kind sputters coffee onto his or her monitor and says something semantically equivalent to “How the holy jumping fsck do you think you’re ever going to pull that off?”
The second kind has a clue. The Unix man page corpus is scattered across tens of thousands of software projects. It’s written in a markup – troff plus man macros – that is a tag soup notoriously resistent to parsing. The markup is underspecified and poorly documented, so people come up with astoundingly perverse ways of abusing it that just happen to work because of quirks in the major implementation but confuse the crap out of analysis tools. And the markup is quite presentation oriented; much of it is visual rather than structural and thus difficult to translate well to the web – where you don’t even know the “paper” size of your reader’s viewer, let alone what fonts and graphics capabilities it has.
Nevertheless, I’ve been working this problem for seventeen years and believe I’m closing in on success in, maybe, another five or so. In the rest of this post I’ll describe what I’m doing and why, so I have an explanation to point to and don’t have to repeat it.
The 2018 edition of the annual Friends of Armed & Dangerous FTF will be held in room 821 of the Southfield Westin in Southfield, MI between 9 p.m. and 12 p.m. this evening.
If you are at Penguicon, or in the neighborhood and can talk yourself yourself in, come join us for an evening of scintillating conversation and mildly exotic refreshments.
I haven’t posted a reposurgeon release announcement in some time because there hasn’t been much that is very dramatic to report. But with 3.44 in the can and shipped, I do have an audacious goal for the next release, which may well be 4.0.
We (I and a couple of my closest collaborators) are going to try to move the reposurgeon code to Go.
I learned something fascinating today.
There is a spot in the South Pacific called the “Oceanic pole of inaccessibility” or alternatively “Point Nemo” at 48°52.6?S 123°23.6?W. It’s the point on the Earth’s ocean’s most distant from any land – 2,688 km (1,670 mi) from the Easter Islands, the Pitcairn Islands, and Antarctica.
There are two interesting things about this spot. One is that it’s used as a satellite graveyard. It’s conventional, when you can do a controlled de-orbit on your bird, to drop it at Point Nemo. Tioangong-1, the Chinese sat that just crashed uncontrolled into a different section of the South Pacific, was supposed to be dropped there. So were the unmanned ISS resupply ships. A total of more than 263 spacecraft were disposed of in this area between 1971 and 2016.
It’s just the place to dump toxic fuel remnants and radionuclides because, in addition to being as far as possible from humans, the ocean there is abyssal desert, surrounded by the South Pacific Gyre so it’s hard for nutrients to reach the place. Therefore there’s probably no local ecology to trash.
According to the great author and visionary Howard Phillips Lovecraft, Point Nemo is the location of the sunken city of R’lyeh, where the Great Old One Cthulhu lies dreaming.
The conclusion is obvious. The world’s space programs are secretly run by a cabal of insane Cthulhu cultists who are dropping space junk on Cthulhu’s crib in an effort to wake him up. “When the stars are right”, hmmph.
EDIT: I was misled by an error in Wikipedia that claims Tiangong-1 was deliberately dropped there, and jumped to a conclusion. Now corrected.
We now have:
* A hardware lead – A&D regular Eric Baskin – with thirty years of experience as a power and signals engineer. He is so superbly qualified for this gig that my grin when I think about it makes my face hurt.
* A high-level system design (about which more below) that promises to be extremely capable, scalable, flexible, and debuggable.
* A really sharp dev group. Half a dozen experts have shown up to help spec this thing. critique te design docs, and explain EE things to ignorant me.
* Industry participation! We have a friendly observer who’s the lead software architect for one of the major UPS vendors.
* A makerspace near me where the owner recruited himself onto the project and is looking forward to donating bench time and skilled hands to the hardware build.
All this helpfulness almost – but not quite – fills in my deficits as a designer/implementer. I don’t really know from hardware design, so I’m attacking the problem with the modularity and information-hiding principles I know from software.
Here is how the design looks:
An I2C bus that ties together a “forebrain” which is a Unix SBC, almost certainly at this point an Olimrx LIME2, with a “midbrain” that is an Arduino-class microcontroller.
The midbrain is mechanism – a simple state machine whose job is to control the high-power subsystem (inverters, battery, AC input and output). Policy decisions and stuff like battery state modeling will live in the forebrain. It will also run the USB and Ethernet interfaces, and host the development environment for the firmware
The forebrain will talk to a 20×4 LCD panel over I2C, and various other controls like alarm mute and self-test buttons via GPIO pins.
I’ve actually written the spec for the I2C bus messages already. And here’s your cute hack for the day…
I realized early on that one of the first things I needed to do was draw a state/action diagram for the system so I could pin down its behavior in response to any given transition in its environment (mains power up, mains power down, battery dwell limit approaching, those sorts of things). So I reached for one of my favorite tools, a graph-drawing DSL called dot.
Only when I write the first version of the graph, I found the dot markup cluttered and repetitive. So I wrote a couple of cpp macros named “state” and “action” that expand to dot markup, and expressed the graph as a sequence of macro calls.
Then I blinked, looked again, and realized…hey, I could compile these calls to C source code for a state machine! And now it is done – I can already generate the tricky part of the application logic for the midbrain directly from the state/action diagram. (The action functions are stubs but the control flow is all there.)
(If the fact that I just solved a design problem by writing a DSL to generate code in another DSL and provably correct equivalent C application logic seems weird to you, you must be be new here. This is how I think all the time. It is obedience to the Unix wisdom: never hand-hack code you can generate from a higher-level description.)
This, however, does not solve the entire firmware problem by any means. The midbrain’s going to need system logic to do things like receive and send I2C messages, poll A2D converters from sensors watching the mains and battery voltage, and so forth.
Accordingly, we need a firmware developer. I’ll learn how to do this if nobody steps up (which is why I said “wants” in the post title) but the whole process will doubtless go faster and more smoothly if we have someone with experience. So:
WANTED: One firmware hacker. Must be familiar with AVR-class microcontrollers and the Linux toolchains for them. Experience with I2C and low-level programming of USB endpoints would be a plus. Perks of the job include getting one of the first UPSides made, your name in lights, and working with a dev crew that is impressive even by my elevated standards.
EDIT: Well, that didn’t take long. A&D regular Jay Maynard has signed on.
I had been thinking about posting about immigration recently, because some facts on the ground have caused me to move away from a pure laissez-faire position on it. A few minutes ago I wrote a long comment on G+ that I realized says a lot of what I wanted to. This is a slightly revised and expanded version of that comment.
I am asked, by another member of the educated white elite, why we shouldn’t simply end border enforcement entirely rather than buid a wall or tolerate Joe Arpaio’s squalid detention camps.
Both here and in Europe there’s been a significant spike in communicable diseases that can be traced back to low immunization rates in what Trump may or may not have called “shithole” countries.
Crime is a real issue. Legal immigrants have a slightly higher criminal propensity than the native born (the difference is small enough that its significance is disputed) but illegals’ propensity is much higher, to the point that 22% of all federal incarcerees are illegals (that’s 92% of all jailed immigrants).
But the elephant in the room is the impact of illegal immigration on social trust.
Yesterday I posted about how the streetlight effect pulls us towards bad choices in systems engineering. Today I’m going to discuss a different angle on the same class of challenges, one which focuses less on cognitive bias and more on game theory and risk management.
In the face of uncertainty, buy options. This is a good rule whether you’re doing whole-system design, playing boardgames, or deciding whether and when to carry a gun.
I’ve been getting a lot of suggestions about the brand new UPSide project recently. One of them nudged me into bringing a piece of implicit knowledge to the surface of my mind. Having made it conscious, I can now share it.
I’ve said before that, on the unusual occasions I get to do it, I greatly enjoy whole-systems engineering – problems where hardware and software design inform each other and the whole is situated in an economic and human-factors context that really matters.
I don’t kid myself that I’m among the best at this, not in the way that I know I’m (say) an A-list systems programmer or exceptionally good at a couple other specific things like DSLs. But one of the advantages of having been around the track a lot of times is that you see a lot of failures, and a lot of successes, and after a while your brain starts to extract patterns. You begin to know, without actually knowing that you know until a challenge elicits that knowledge.
Here is a thing I know: A lot of whole-systems design has a serious drunk-under-the-streetlamp problem in its cost and complexity estimations. Smart system engineers counter-bias against this, and I’m going to tell you at least one important way to do that.