Scott Wlaschin Profile picture
I believe that solutions emerge from the judicious study of discernible reality. @ScottWlaschin@fosstodon.org
Nov 15, 2022 18 tweets 3 min read
I have spent a large chunk of my life living and working in primitive tribal societies. Here is my report on what I found. Thread. For context, the tribes I lived among were the 'Developer' tribe, the 'DBA' tribe, the 'Tester' tribe, the 'Designer' tribe, and the 'Manager' tribe. Some of these tribes are very isolated and their members have never interacted with a normal human being.
Dec 8, 2021 8 tweets 2 min read
I just got off doing a Python contract. Python is not my preferred language, it's more like 4th on my list. So I have some thoughts on being a polyglot programmer, and why it's related to being a good session musician. A pro session musician can play in almost any style: country, motown, grunge, disco. And they understand and work within the idioms of the style. A metal guitar solo is not going to work in a country song. They play what's right for the song, not what makes them look good.
Nov 22, 2021 9 tweets 3 min read
I often see people focus too much on efficiency instead of effectiveness. But they're very different, and effectiveness is way more important.
I like to explain the distinction using the example of Cabot Cove, murder capital of 1990s America. 1/ Cabot Cove was a small town in coastal Maine. Back in the 1990s it had a population of 3,560. Most towns in Maine have an extremely low murder rate, yet Cabot Cove had 274 murders in one twelve-year period! 2/ Image
Oct 8, 2021 14 tweets 3 min read
Great post. I think that skill floor/skill ceiling is a great framework for thinking about programming language accessibility. But I think there is more as well... An important factor is not just the skill floor needed to get started, but the skill floor needed to understand (and maintain!) other people's code. That is, what skill level do you need to participate in a programming community?
May 2, 2021 10 tweets 5 min read
In response to this tweet, people recommended their favorite design-focused books, which I'll list.
But read on to the end because I want more :)

"Growing Object-Oriented Software, Guided by Tests" by @natpryce & @sf105
"Practical Object-Oriented Design" by @sandimetz

1/n "Programming DSLs in Kotlin" by @venkat_s
"Joy of Kotlin" by @pysaumont
"Designing Elixir Systems with OTP" by @JEG2 & @redrapids
"Data-oriented design" dataorienteddesign.com/dodbook/
leanpub.com/usablesoftware… by @alexboly

2/n
May 1, 2021 6 tweets 2 min read
Where are all the modern software design books?
There was a huge burst of creativity around software design & analysis from the late 1980s up to the early 2000s (All the OOD ones, GoF, Fowler, Martin, Evans, HtDP etc) and then there's not been much since (except for DDD stuff) Recently there has been some new activity: "A Philosophy of Software Design", "Secure By Design" and just now "Software Design for Flexibility".
("Designing Data-Intensive Applications" and "Code as a Crime Scene/Software Design X–Rays" are great but not really design books imo)
Mar 30, 2021 24 tweets 8 min read
Thread! I've watched 100s of hours of photography videos on YouTube. I've learned from the experts! From them, I've learned that being a good photographer is all about having the latest gear, having more megapixels, and knowing those cool Lightroom tricks. So, thank you, YouTube experts! I now have the confidence to help other beginning photographers get better. In the rest of this thread I'll critique some photos that have been sent to me for review.
Dec 23, 2019 26 tweets 6 min read
If you care about usability, human factors, normal accidents, etc, then this is a must read. If this has been reported correctly, the design of the ship's navigation system is shocking.
features.propublica.org/navy-uss-mccai… To summarize: The US Navy's John McCain collided with an oil tanker and 10 people died. The crew using the navigation system got blamed but the navigation system itself didn't. Sadly, though, many of the mistakes have been made before and will probably be made again 😟
Oct 12, 2019 12 tweets 2 min read
I'm developing a new alternative to microservices that addresses many of the problems that people run into. I call it "SPMSA". Bear with me -- I'll explain the acronym in a later tweet. 1/ First, design your microservices in the usual way. No more than 500 lines each, say, and with well-defined interfaces. But here's the first trick: you put them all in the same repo. This means that you have a single commit that encompasses all services at once. 2/
Aug 4, 2019 25 tweets 5 min read
This is a great idea: . Before I was a programmer I use to do a bit of odd-job carpentry, so I'm going to chime in with my take based on my experiences in that field. When you're outside an area of expertise looking in, it can often seem monolithic and uniform, but when you're an insider you quickly realize that there are many different subcommunities, each with different specialties and different approaches. They sometimes hate each other :)
Jun 24, 2019 11 tweets 5 min read
NewCrafts is the one of the best conferences if you like alternative takes on programming culture. There are a number of excellent videos available on their site: videos.ncrafts.io I'm going link to a few below. #newcrafts If you have a philosophical bent, start with "Nihilism and technology" by @ethicistforhire videos.ncrafts.io/video/338479835
Mar 19, 2019 10 tweets 2 min read
Recently @Hillelogram linked to Pamela Zave's work on "Feature Interaction" pamelazave.com/faq.html. This is well worth reading and has some nice examples where two features work correctly in isolation, but fail when combined. For example: Carol has Do Not Disturb enabled except for her colleagues. Later, her colleague Bob starts forwarding all calls to Carol. When Alice (who Carol doesn't know) calls Bob, the call is forwarded to Carol. Should Carol's phone ring?
Dec 28, 2018 18 tweets 4 min read
You're not a real developer if you don't have a computer science degree
You're not a real developer if you weren't hacking when you were eight years old
You're not a real developer if you don't spend your spare time coding
You're not a real developer if you do it for the money You're not a real developer if you don't understand math jokes
You're not a real developer if you've never heard of XKCD
You're not a real developer if you don't like Star Wars
You're not a real developer if you don't play video games
Feb 6, 2018 11 tweets 2 min read
Introducing JSON++, with powerful new features for modern development needs.

Problem 1: JSON doesn't support the kinds of data which developers need to send over the wire: 1a) JSON++ supports many new kinds of fields, including date/time, boolean, binary data and different sizes of integer.

1b) JSON++ allows you to embed arbitrary text blocks without needing to escape everything in the block.