Apologies for the self-promotion, but this video just crossed my path today. I didn't know it was available. It's a (long) lecture I gave at UNSW a couple of years ago to a software engineering class on the subject of what software engineering actually _is_. It captures how I think about software pretty well.
@robpike "think about it socially"
thank you.
@robpike Thanks for sharing!
@robpike Is there a book about Steinmetz you can recommend?
@oec @robpike this looks good from '92 https://annas-archive.org/md5/058c2aeb4d7c228aeb56f50c8927a423
10 minutes in. Only and thoroughly enjoying it
I had heard the chalk story but only as a joke about an anonymous expert. Amazing!
@robpike Others have thanked you for the Steinmetz reference and how software engineering is a social endeavour, so I'll thank you for the regular expressions and linearity rabbit hole you send me down.
@robpike That is a wonderful lecture. I particularly like the discussion of debugging. The Steinmetz story reminds me of your story about Ken's approach to debugging.
@robpike I like. but you do realize that 0.7999999999 is 0.8, right?
@timnewsham But it's not, unless there's an overbar on the final 9.
Also this:
% python3
Python 3.9.6 (default, Nov 11 2024, 03:15:38)
[Clang 16.0.0 (clang-1600.0.26.6)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 0.2+0.1
0.30000000000000004
>>>
So is that .3?
@robpike I was trying to make an even subtler point -- for almost all purposes "they're close enough" (so, yes, that other number is 0.3). I guess at this point it comes down to what the specification is. if there's no specification, then your program cant even be wrong.
@timnewsham Exactly! (Pun intended)
@robpike I'm one of the lucky ones who get to work on their own software. Computing audio with 64bit floats at 48kHz with Go, thanks!
Pike on debugging and The One True Fact.
"There's a bug. What's the ONE thing you know, for a fact? You know for a fact that that bug happened. [...] That is a FACT. And whatever else that fact tells you, it's really important to figure out why it happened. You start from the fact that the failure occured and what that failure tells you about the work." [around 26:30 in the recording]
Oh, such a beautiful, graceful talk. Full of bits of wisdom, small and large, about software, about work and collaboration, about personal development for the long haul. Presented with wit and warmth. Beautiful. Thank you for sharing!
@robpike I didn't know the Steinmetz - Ford story, but heard the same story with a guy fixing a bug by commenting out one line of code after inspecting the code for one day. And in the end the same punch line:
- commenting out one line of code: $1
- commenting out the correct line of code: $9999
Electrical engineers might have heard of Steinmetz, because there is the "Steinmetz circuit" which allows to connect a three-phase motor to a one-phase AC power outlet.
Thanks for sharing the talk!