Code & Development
Open Transclude
The Website Obesity Crisis
A Talk by Maciej CegłowskiWeb Design - The First 100 Years
A Talk by Maciej CegłowskiVisualizing Algorithms
An Article by Mike BostockAias
A Profile by Nick TrombleyThe Future of Programming
A Talk by Bret VictorWhat Makes Software Good?
An Article by Mike BostockAn incoherent rant about design systems
An Article by Robin RendleNo matter how fancy your Figma file is or how beautiful and lovingly well organized that Storybook documentation is; the front-end is always your source of truth. You can hate it as much as you like—all those weird buttons, variables, inaccessible form inputs—but that right there is your design system.
...being honest about this is the first step to fixing it.
Right-Angle Doodling Machine
A Game by Clive Thompson- You draw one single line. It can be as long as you like.
- To start the line, you put your pen down.
- You can make right-angle turns only, either 90 degrees or -90 degrees.
- You cannot back up. You must always move forward.
- You don’t lift your pen until you’re ready to stop. When you lift the pen, the doodle is done.
What do I need to read to be great at CSS?
An Article by Baldur BjarnasonA rule of thumb is that the importance of a blog in your feed reader is inversely proportional to their posting cadence. Prioritise the blogs that post only once a month or every couple of weeks over those that post every day or multiple times a day...Building up a large library of sporadically updated blogs is much more useful and much easier to keep up with than trying to keep up with a handful of aggregation sites every day.
Designing with code
An Article by Matthew StrömRecently I’ve had a few opportunities to use code to create design. In two of my bigger projects at The Wall Street Journal, writing code has led to new ideas. Problems that typically plague early designs — e.g. “how does this look with real content?” — are easy to solve. By exploring visual ideas directly in code, I’ve started to see the amazing potential of code as a design tool.
Picking better names for variables, functions, and projects
An Article by Tom MacWright- Avoid weasel words
- Follow patterns religiously
- Don’t cheap out on characters
- Call things the same thing
- Don’t name internal projects
- When things change, change their names
this vs. that
A Website by Phuoc Nguyentixy.land
A Websitesin(t * x) * cos(t * y)
Creative code golfing.
Front-of-the-front-end and back-of-the-front-end web development
An Article by Brad FrostA succinct way I’ve framed the split is that a front-of-the-front-end developer determines the look and feel of a
button
, while a back-of-the-front-end developer determines what happens when thatbutton
is clicked.The Great Divide
An Article by Chris CoyierOn one side, an army of developers whose interests, responsibilities, and skill sets are heavily revolved around JavaScript.
On the other, an army of developers whose interests, responsibilities, and skill sets are focused on other areas of the front end, like HTML, CSS, design, interaction, patterns, accessibility, etc.
Painting With the Web
An Article by Matthias OttSo much about [Gerhard Richter's painting process] reminds me of designing and building for the Web: The unpredictability, the peculiarities of the material, the improvisation, the bugs, the happy accidents. There is one crucial difference, though. By using static wireframes and static layouts, by separating design and development, we are often limiting our ability to have that creative dialogue with the Web and its materials. We are limiting our potential for playful exploration and for creating surprising and novel solutions. And, most importantly, we are limiting our ability to make conscious, well-informed decisions going forward. By adding more and more layers of abstraction, we are breaking the feedback loop of the creative process.
Technical debt as a lack of understanding
An Article by Dave Rupert"If you develop a program for a long period of time by only adding features but never reorganizing it to reflect your understanding of those features, then eventually that program simply does not contain any understanding and all efforts to work on it take longer and longer.” — Ward Cunningham
bees & bombs
A Blog
A City Is Not a Tree
- Strands of life
- Impending destruction
- The right overlap
- The difficulty of designing complexity
- Political chains of influence
Strands of life
For the human mind, the tree is the easiest vehicle for complex thoughts. But the city is not, cannot, and must not be a tree. The city is a receptacle for life. If the receptacle severs the overlap of the strands of life within it, because it is a tree, it will be like a bowl full of razor blades on edge, ready to cut up whatever is entrusted to it. In such a receptacle life will be cut to pieces. If we make cities which are trees, they will cut our life within to pieces.
Impending destruction
In any organized object, extreme compartmentalization and the dissociation of internal elements are the first signs of coming destruction.
The right overlap
Overlap alone does not give structure. It can also give chaos. A garbage can is full of overlap. To have structure, you must have the right overlap.
The difficulty of designing complexity
Designers, limited as they must be by the capacity of the mind to form intuitively accessible structures, cannot achieve the complexity of the semilattice in a single mental act. The mind has an overwhelming predisposition to see trees wherever it looks and cannot escape the tree conception.
Experiments suggest strongly that people have an underlying tendency, when faced by a complex organization, to reorganize it mentally in terms of non-overlapping units. The complexity of the semilattice is replaced by the simpler and more easily grasped tree form.
Political chains of influence
In Chicago, formal chains of influence and authority are entirely overshadowed by the ad hoc lines of control which arise naturally as each new city problem presents itself. These ad hoc lines depend on who is interested in the matter, who has what at stake, who has what favors to trade to whom.
This structure, which is informal, working within the framework of the first, is what really controls public action. It varies from week to week, even from hour to hour, as one problem replaces another. Nobody’s sphere of influence is entirely under the control of any one superior; each person is under different influences as the problems change. Although the organization chart in the Mayor’s office is a tree, the actual control and exercise of authority is semilattice-like.
Same name in the same basket
Does a concert hall ask to be next to an opera house? Can the two feed on one another? Will anybody ever visit them both, gluttonously, in a single evening, or even buy tickets from one after going to a performance in the other?
In Vienna, London, Paris, each of the performing arts has found its own place, because all are not mixed randomly. The only reason that these functions have all been brought together in Lincoln Center is that the concept of performing art links them to one another. The organization is born of the mania every simple-minded person has for putting things with the same name into the same basket.
Separation of concerns
Another favorite concept of the CIAM theorists and others is the separation of recreation from everything else. This has crystallized in our real cities in the form of playgrounds. The playground, asphalted and fenced in, is nothing but a pictorial acknowledgment of the fact that ‘play’ exists as an isolated concept in our minds. It has nothing to do with the life of play itself. Few self-respecting children will even play in a playground.
Play itself, the play that children practice, goes on somewhere different every day. In a natural city this is what happens.
Structural complexity
The idea of overlap, ambiguity, multiplicity of aspect, and the semilattice are not less orderly than the right tree, but more so. They represent a thicker, tougher, more subtle and more complex view of structure.
Neighborhoods
We cannot get an adequate picture of what Middlesborough is, or of what it ought to be, in terms of neighborhoods. When we describe the city in terms of neighborhoods, we implicitly assume that the smaller elements within any one of these neighborhoods belong together so tightly that they only interact with elements in other neighborhoods through the medium of the neighborhoods to which they themselves belong. Ruth Glass herself shows clearly that this is not the case.
Cities which are trees
Columbia, Maryland
Greenbelt, Maryland
Greater London Plan
Mesa City, Paolo Soleri
Tokyo Plan, Kenzo Tange
Chandigarh (Le Corbusier)
Brasilia, Lucia Costa
Communitas (Percival and Paul Goodman)
Roman town evolved from military campsIn the worst cases, the units of which these cities are composed fail to correspond to any living reality; and the real systems, whose existence actually makes the city live, have been provided with no physical receptacle.
In a tree structure, it means that within this structure no piece of any unit is ever connected to other units, except through the medium of that unit as a whole.
Sets and systems
When the elements of a set belong together because they cooperate or work together somehow, we call the set of elements a system.
From a designer’s point of view, the physically unchanging part of this system is of special interest. I define this fixed part as a unit of the city.
Whatever picture of the city someone has is defined precisely by the subsets he sees as units.
Natural and artificial cities
I want to call those cities which have arisen more or less spontaneously over many, many years natural cities. And I shall call those cities and parts of cities which have been spontaneously created by designers and planners artificial cities. Siena, Liverpool, Kyoto, and Manhattan are examples of natural cities. Levittown, Chandigarh, and the British New Towns are examples of artificial cities.
It is more and more widely recognized today that there is some essential ingredient missing from artificial cities.
Trees and semilattices
The tree of my title is not a green tree with leaves. It is the name of an abstract structure. I shall contrast it with another, more complex abstract structure called a semilattice.
Both the tree and semilattice are ways of thinking about how a large collection of many small systems goes to make up a large and complex system.
A collection of sets forms a semilattice if, and only if, when two overlapping sets belong to the collection, the set of elements common to both also belongs to the collection. That is, if [234] and [345] belong to the collection, then [34] belongs to the collection.
A collection of sets forms a tree if, and only if, for any two sets that belong to the collection either one is wholly contained in the other, or they are wholly disjoint. Every tree is trivially a simple semilattice.
We are concerned with the difference between structures in which no overlap occurs, and those structures in which overlap does occur.
The semilattice is potentially a much more complex and subtle structure than a tree. It is this lack of structural complexity, characteristic of trees, which is crippling our conceptions of the city.