/Design

Make It Ephemeral: Software Should Decay And Lose Data

- Armin Ronacher tl;dr: “Most software that exists today does not forget. Creating software that remembers is easy, but designing software that deliberately “forgets” is a bit more complex. By “forgetting,” I don't mean losing data because it wasn’t saved or losing it randomly due to bugs. I'm referring to making a deliberate design decision to discard data at a later time. This ability to forget can be an incredibly benefitial property for many applications. Most importantly software that forgets enables different user experiences.”

featured in #563


Examples Of Great URL Design

- Jim Nielsen tl;dr: Jim discusses the importance of thoughtful URL design, showcasing how URLs can be more than just web addresses. He highlights examples like StackOverflow, where URLs balance computer and human needs by combining a unique identifier with an optional human-readable slug. Jim also mentions Slack's marketing campaign, which cleverly integrated storytelling into URLs. He points out how GitHub and NPM use URLs that map to their domain semantics, providing intuitive navigation and shortcuts for users. 

featured in #540


Solving A Math Problem With Planner Programming

- Hillel Wayne tl;dr: “Suppose that at the beginning there is a blank document, and a letter "a" is written in it. In the following steps, only the three functions of "select all", "copy" and "paste" can be used. Find the minimum number of steps to reach at least 100,000 a's. If the target number is not specified, and I want to get the exact amount of a, is there a general formula?”

featured in #530


Ownership

- Saoirse Shipwreckt tl;dr: “This post is meant as an explainer about how substructural type theory can be applied in programming language design. Terms like “substructural type theory” tend to scare and confuse programmers who don’t write Haskell on the weekends, so one thing programming language designers should do when thinking about how they will present their language is invent metaphors, even slightly misleading ones, to help more ordinary programmers understand how their language works. One such term is “ownership.””

featured in #526


Common Design Patterns At Stripe

- Paul Asjes tl;dr: “You might disagree with how the Stripe API is designed, and the design you end up with is likely going to be different than what we use. That’s just fine, since different companies have different use cases. Instead I present here some design patterns that I believe are generic enough to be useful for just about anyone in the API design process.”

featured in #526


Common Design Patterns At Stripe

- Paul Asjes tl;dr: “You might disagree with how the Stripe API is designed, and the design you end up with is likely going to be different than what we use. That’s just fine, since different companies have different use cases. Instead I present here some design patterns that I believe are generic enough to be useful for just about anyone in the API design process.”

featured in #525


The Sound Of Software

tl;dr: “Sound is an outcast in Software Design. We may embrace the aesthetics of animation and visuals, but sound is different. It’s intrusive. Unlike visuals on a screen, you can’t look away or ignore it... If you haven’t worked with sound before, it may be difficult to know where to start. When should you use it? How do you create it? How do you shape it? How do you even talk about it? Let's get in it.”

featured in #512


In Loving Memory Of Square Checkbox

- Nikita Prokopov tl;dr: "But despite all this chaos and temptation, operating system vendors knew better. To this day, they follow The convention: checkboxes are square, radio buttons are round. Maybe it was part of their internal training. Maybe they had experienced art directors. Maybe it was just luck. I don’t know, it doesn’t really matter but somehow they managed to stick to the convention. Until this day."

featured in #484


Examples Of Great URL Design

- Jim Nielsen tl;dr: Jim discusses the importance of thoughtful URL design, showcasing how URLs can be more than just web addresses. He highlights examples like StackOverflow, where URLs balance computer and human needs by combining a unique identifier with an optional human-readable slug. Jim also mentions Slack's marketing campaign, which cleverly integrated storytelling into URLs. He points out how GitHub and NPM use URLs that map to their domain semantics, providing intuitive navigation and shortcuts for users. 

featured in #470


Communicate Design Tradeoffs Visually

- Tim Lyakhovetskiy tl;dr: “A goal of any written design or project proposal is to present and evaluate alternatives. However, documents that include multiple solutions can be difficult to read when the qualities of each solution are not clearly expressed. A common approach to simplifying proposals is to use “pros and cons” for each alternative, but this leads to biased writing since the pros and cons may be weighed differently depending on the reader’s priorities.” Tim shows us how to color code these tradeoffs to make it easier for readers to parse ideas.

featured in #459