Newsletter

Design Patterns


ยซ Advice

Empathy ยป

This week I was reminded of the roots of design patterns.

Kent, Ward and an architect - a real architect

This week Luis Ascorbe published a beautiful little tweet accompanied by a diagram. He's given me permission to republish it here and I will - but first I wanted to tell you that it really took me back to the design patterns that existed before the GoF book on Design Patterns was published in the mid 90s.

One of my favorite books on programming is Kent Beck's Smalltalk Best Practice Patterns which remains an important and beautiful book even if you will never write a line of Smalltalk.

To me, it's a reminder of what a design pattern is meant to be. It is a small solution to a problem that lives within a family of patterns that make up a pattern language.

Ward Cunningham and Kent Beck were inspired by the work of Christopher Alexander. Alexander's books "A Timeless Way of Building" and "A Pattern Language" changed how many of us thought about many things - including software.

Many people cite his books as inspiration without having read them. They are very readable and they form the foundation of what Ward and Kent brought to software engineering.

Luis' Pattern

Last week Luis posted this:

"Iโ€™m seeing more and more people share their desk against windows.

I just want you to know the desk should be placed perpendicular to any window when possible, to limit glaring or back lighting of the monitor.

I created a pic, with my great design skills, to illustrate ๐Ÿ’๐Ÿปโ€โ™‚๏ธ "

Luis' original

Look at how simple this tweet is. He has stated the problem (monitor glare). He has stated who the problem is relevant for. He has stated and illustrated a solution.

Duncan's extension

Many people commented on Lascorbe's post and suggested refinements. My favorite comes from James Duncan Davidson.

Duncan was trained as an architect (as in Alexander not as in software) before beginning a career in software. His addition (also republished with permission) was that Ascorbe's presentation was perfect for building on.

Duncan tweets:

"Bonus: It provides just enough information that you can sketch on and annotate for specific cases.

For example, here's a quick illustration of optimizing your desk for better webcam light.

You can either turn your desk slightly or shift your camera to get nice light."

Duncans Exension

These are the design patterns I love. Short, direct, address a problem, propose a solution, and composable.


Link to the Podcast episode from May 26, 2023.


Free talk from CocoaHeads NL

I spoke last week at the CocoaHeads Netherlands Meetup. I've been to their meetup many times in person and spoken live several times. It's a vibrant and great group filled with many wonderful people.

They asked me to speak last week so I prepared a video called Functional Fundamentals and SwiftUI about some of the fundamentals of functional programming and why it will be useful to us in SwiftUI and Combine. I've posted it for free on my video page but haven't updated the links to it yet.

Maggie's Link

When Maggie was younger she spent a lot of her summers in Rhode Island at a house my parents owned (and later Kim and I bought).

Her link this week is of someone walking the length of Rhode Island in a day. Many of the sites are familiar to the two of us. I have happy memories of the Zoo, the ocean, Providence, and may places not in the video (where the Paw Sox used to play).

Before Maggie was born, I used to teach High School during the day in Newton, MA and work 7 - midnight on-air at a radio station in Westerly, RI. I drove the length of RI five nights a week.

What mathematics is like

Other people have linked to this Sudoku challenge so you may have seen it already.

The reason I'm linking to it is it reminded me of what being a professional mathematician is like.

You create axioms for your world and you see what you can derive from them.

In this video, in addition to the standard Sudoku rules, the setter, Mitchell Lee, has added three other conditions. With these conditions a single "1" and "2" are placed in the grid.

The solver, Mark Goodliffe, is certain that it's impossible and despairs while he attempts to solve it. Then he nips away at this piece then that and the puzzle starts to reveal itself. The more he plays with the rules the more he sees their implications.

This Sudoku challenge and solution is surprisingly enjoyable.

Remind

Last week I took a Command-Line tool class from Erica Sadun. She is an inspiration to me on many levels.

She has just released the command line tool named "remind". In part the man page reads:

Schedule reminders from the command line. "remind -m 20 Stand up and stretch", "remind --at 1:30P Call Bob", "remind --at 13:30 Leave for Dr visit". Any notifications scheduled earlier in the day (say it is now 2PM and you set a reminder for 11:30), are pushed forward one day.

Newsletter 2020

Newsletter by Year