/Design

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


How GitHub Indexes Code For Blazing Fast Search & Retrieval

- Shivang Sarawagi tl;dr: “The search engine supports global queries across 200 million repos and indexes code changes in repositories within minutes. The code search index is by far the largest cluster that GitHub runs, comprising 5184 vCPUs, 40TB of RAM, and 1.25PB of backing storage, supporting a query load of 200 requests per second on average and indexing over 53 billion source files.”

featured in #458


Hey, Computer, Make Me A Font

- Sergey Tselovalnikov tl;dr: “This is a story of my journey learning to build generative ML models from scratch and teaching a computer to create fonts in the process.” FontoGen is a generative ML model project that crafts type fonts based on user descriptions. The author delves into the complexities of text-to-SVG generation and the intricacies of maintaining stylistic uniformity across glyphs. Drawing inspiration from the IconShop paper, a sequence-to-sequence model was employed, using text embeddings from BERT and font embeddings from tokenized glyph shapes.

featured in #454