Here is another great analogy about root causes of successes and failures in systems that lends insight into resiliency. It's fun food for thought.
Tuesday, August 31, 2021
Sunday, August 29, 2021
Friday, August 27, 2021
Saturday, August 21, 2021
The Rules of Civility by Amore Towles
Having been blown away by his latest book, A Gentleman in Moscow, I had to read his earlier book. I do not care as much about the history, setting, or characters of this story. It is extremely well-crafted and immersive, though. 3/5 Stars.
Labels:
history
Thursday, August 19, 2021
slice of life appeal
In 2017 I posted about an immersive experience of preparing authentic 1949 Twinkies from scratch using 1949 baking pans and a 1949 heavy cream whipping device. As a preamble, I wrote
I love to experience the "big picture" pattern of other cultures with all of my senses and apperceptions. I want not only to see the sites when I travel, but also smell the diesel fumes, taste authentic street food, and hear the "flavor" of local dialects. But more than that I want to feel and viscerally experience the attitudes, values, opinions, and sensibilities of the locals, to "get into their heads." I love to experience the culture. . .
In that posting I wrote about immersive films that bring out many elements of the slice of life experiences I enjoy. The book Deacon King Kong is an example of how books can also create these immersive experiences, replete with authentic vocabulary, accented utterances in the dialog, and characters' values or behaviors.
Web comics have become more popular. Like others locked in our homes, I personally have been spending a little more time viewing them. Saturday Morning Breakfast Cereal had a funny comic today about surly teenagers that reminded me of our recent, fantastic adventure at Crater Lake zipline whose guides are all surly high school teenagers. Their silly antics added to the fun of flying through the forest canopy.
Wednesday, August 18, 2021
Sunday, August 15, 2021
The Blank Slate by Steven Pinker
I really enjoy Pinker's books; this one was recommended by a family member. Pinker's fantastic reasoning, exposition, and championing of evidence-based approaches to understanding and tradeoffs in policies is refreshing. 5/5 Stars. Pinker should provide similar analysis and exposition of other persistent myths and doctrine that prevent progress in the enlightenment ideals.
Labels:
popsci
Thursday, August 12, 2021
Elon's 5 Rules for Engineering as they apply to software development
On Friday 2021-07-30, Elon Musk conducted a long interview and SpaceX facility tour with photographer-turned-YouTuber Tim Dowd aka "The everyday astronaut." Tim put together three videos of the interview and tour that are highly entertaining and worth your time to view, whether or not you care about rockets & space.
One part of the interview with which I was very impressed is Elon's description of his five step engineering process. Tim posted his notes from the interview on his website. Here is an excerpt:
Musk overviewed his five step engineering process, which must be completed in order:
- Make the requirements less dumb. The requirements are definitely dumb; it does not matter who gave them to you. He notes that it's particularly dangerous if an intelligent person gives you the requirements, as you may not question the requirements enough. "Everyone's wrong. No matter who you are, everyone is wrong some of the time." He further notes that "all designs are wrong, it's just a matter of how wrong."
- Try very hard to delete the part or process. If parts are not being added back into the design at least 10% of the time, not enough parts are being deleted. Musk noted that the bias tends to be very strongly toward "let's add this part or process step in case we need it." Additionally, each required part and process must come from a name, not a department, as a department cannot be asked why a requirement exists, but a person can.
- Simplify and optimize the design. This is step three as the most common error of a smart engineer is to optimize something that should not exist.
- Accelerate cycle time. Musk states "you're moving too slowly, go faster! But don't go faster until you've worked on the other three things first."
- Automate. An important part of this is to remove in-process testing after the problems have been diagnosed; if a product is reaching the end of a production line with a high acceptance rate, there is no need for in-process testing.
Additionally, Musk restated that he believes everyone should be a chief engineer. Engineers need to understand the system at a high level to understand when they are making a bad optimization. As an example, Musk noted that an order of magnitude more time has been spent reducing engine mass than reducing residual propellant, despite both being equally as important.
In software development we may be able to adapt the principles of each step in this process to improve our development lifecycle. Let's look at each step:
Make the software product requirements less dumb. The requirements are definitely dumb; it does not matter who gave them to you. It's particularly dangerous if an intelligent, charismatic, articulate person gives you the requirements, as you will not challenge the requirements enough. Everyone is wrong. No matter who you are, everyone is wrong some of the time. All designs are wrong, it's just a matter of how wrong. Some loud minority of customers or stakeholders of your software will prioritize useless, hazardous, or destructive requirements and fail to communicate or prioritize requirements for the core purpose of your software.
Try very hard to remove objects, components and features. There is no code with fewer bugs than no code. If components are not being added back into the design at least 10% of the time, not enough of your design was deleted. Human nature biases everyone very strongly toward solving problems by adding complexity. We must constantly try to simplify. Additionally, each feature requirement must come from an individual who has evidence for her need, not a title or a department, as a department cannot be asked why a requirement exists, but a person can.
Simplify and optimize the software design. The most common error of a smart engineer is to optimize something that should not exist. Premature optimization is the root of all evil.
Don't go faster until you have completed the first three steps; then accelerate.
Refactor, optimize, simplify Your continuous integration, deployment, and test suites are too big, complicated and take too long. Keep integration tests for the Beyoncé rule and hold on to most negative tests for corner cases or data races; consider trimming positive "coverage" tests and speed up or delete your slowest tests. Automate wherever possible.
Labels:
devops
Monday, August 9, 2021
Sunday, August 8, 2021
improved command line tools
Many of us spend a lot of time typing at a shell and using command line tools. Personally, I have been typing at Unix since 1977. This excellent collection of "modern" (better) alternatives to very-common command line tools we use is fun and very useful. It's great to see this creativity and diversity. Obviously, as we run commands on many different systems, we must be facile at the older variants of the tools. But the utility and comfort these tools afford to a local environment is wonderful.
Labels:
devops
Friday, August 6, 2021
Sunday, August 1, 2021
So you think you know about domain name service (DNS) records?
Jan Schaumann has cataloged all 100 resource record types in github in a blog entry, and within the live zone files for his domain panix.netmeister.org. So you can query his DNS server for documentation about record types. Clever.
$ dig +short aaaa aaaa.dns.netmeister.org.2001:470:30:84:e276:63ff:fe72:3900$ dig +short txt aaaa.dns.netmeister.org."Format: single a hexadecimal IPv6 address""A 128-bit IPv6 host address. RFC1884 (1995); RFC4291 (2006)"$
Labels:
devops
Recent trends in DevSecMLOps
InfoQ has released their July 2021 trend report, covering evolution of services, including on-premise, cloud, SRE adoption, observability, and CI/CD among other trends. Interesting and worth skimming.
Labels:
devops
Randomize by Andy Weir
I make earnest efforts to avoid the evil retail giant's (ERG's) pervasive, monopolistic, ecosystems; I always look for online and retail alternatives. I try not to stream their online content and always look for an alternative cloud computing provider. Other members of my household, however, have subscribed to their annual, expensive, "free shipping club" service that includes a large and growing number of benefits and perquisites. Among the benefits is some free ebook content and I saw this Andy Weir story was available free. The story is quite good but a little bit too short. Hints about the characters and plot arc were a little too dense and the ideas were big enough to expand into at least novella length. I enjoyed it and can't wait to try more of the perquisites from the ERG (sigh). 5/5 Stars
Subscribe to:
Posts (Atom)