' █▄▄▄▄ ▄███▄ ██ █ █ ▄▄ █▄▄▄▄ ████▄ ▄▀ █▄▄▄▄ ██ █▀▄▀█ █▀▄▀█ ▄█ ▄ ▄▀
' █ ▄▀ █▀ ▀ █ █ █ █ █ █ ▄▀ █ █ ▄▀ █ ▄▀ █ █ █ █ █ █ █ █ ██ █ ▄▀
' █▀▀▌ ██▄▄ █▄▄█ █ █▀▀▀ █▀▀▌ █ █ █ ▀▄ █▀▀▌ █▄▄█ █ ▄ █ █ ▄ █ ██ ██ █ █ ▀▄
' █ █ █▄ ▄▀ █ █ ███▄ █ █ █ ▀████ █ █ █ █ █ █ █ █ █ █ ▐█ █ █ █ █ █
' █ ▀███▀ █ ▀ █ █ ███ █ █ █ █ ▐ █ █ █ ███
' ▀ █ ▀ ▀ ▀ █ ▀ ▀ █ ██
' ▀ ▀
___ ___ ___ ___ ___
.-. ( ) .-. ( ) .-. ( ) ( ) ( )
( __) .--. .---. ___ .-. .--. | | ( __) | |_ ( __) .--. | |_ ___ .-. .-. ___ ___ | |_ | | .-.
(''") / _ \ / .-, \ ( ) \ / \ | | (''") ( __) (''") / _ \ ( __) ( ) ' \ ( )( ) ( __) | |/ \
| | . .' `. ; (__) ; | | .-. . | .-. ; | | | | | | | | . .' `. ; | | | .-. .-. ; | | | | | | | .-. .
| | | ' | | .'` | | | | | | | | | | | | | | | ___ | | | ' | | | | ___ | | | | | | | | | | | | ___ | | | |
| | _\_`.(___) / .'| | | | | | | |/ | | | | | | |( ) | | _\_`.(___) | |( ) | | | | | | | ' | | | |( ) | | | |
| | ( ). '. | / | | | | | | | ' _.' | | | | | | | | | | ( ). '. | | | | | | | | | | ' `-' | | | | | | | | |
| | | | `\ | ; | ; | | | | | | .'.-. | | | | | ' | | | | | | `\ | | ' | | | | | | | | `.__. | | ' | | | | | |
| | ; '._,' ' ' `-' | | | | | ' `-' / | | | | ' `-' ; | | ; '._,' ' ' `-' ; | | | | | | ___ | | ' `-' ; | | | |
(___) '.___.' `.__.'_. (___)(___) `.__.' (___) (___) `.__. (___) '.___.' `.__. (___)(___)(___) ( )' | `.__. (___)(___)
; `-' '
' ▗▄▄▖▗▖ ▗▖ ▗▄▄▖ ▗▄▖ ▗▖ ▗▖▗▖ ▗▄▄▄▖ ▗▄▖ ▗▄▄▖ ▗▄▄▄
' ▐▌ ▐▌▝▚▞▘ ▐▌ ▐▌▐▌ ▐▌▐▌ ▐▌▐▌ ▐▌ ▐▌ ▐▌▐▌ ▐▌▐▌ █
' ▐▛▀▚▖ ▐▌ ▐▛▀▘ ▐▛▀▜▌▐▌ ▐▌▐▌ ▐▛▀▀▘▐▌ ▐▌▐▛▀▚▖▐▌ █
' ▐▙▄▞▘ ▐▌ ▐▌ ▐▌ ▐▌▝▚▄▞▘▐▙▄▄▖ ▐▌ ▝▚▄▞▘▐▌ ▐▌▐▙▄▄▀
'
'
'
' ▗▄▄▖ ▗▖ ▗▖▗▄▄▖ ▗▖ ▗▄▄▄▖ ▗▄▄▖▗▖ ▗▖▗▄▄▄▖▗▄▄▄ ▗▄▄▖▗▖ ▗▖ ▗▖ ▗▖▗▄▄▄▖▗▄▄▖ ▗▄▄▄▖▗▄▄▄
' ▐▌ ▐▌▐▌ ▐▌▐▌ ▐▌▐▌ █ ▐▌ ▐▌ ▐▌▐▌ ▐▌ █ ▐▌ ▐▌▝▚▞▘ ▐▌ ▐▌ █ ▐▌ ▐▌▐▌ ▐▌ █
' ▐▛▀▘ ▐▌ ▐▌▐▛▀▚▖▐▌ █ ▝▀▚▖▐▛▀▜▌▐▛▀▀▘▐▌ █ ▐▛▀▚▖ ▐▌ ▐▌ ▐▌ █ ▐▛▀▚▖▐▛▀▀▘▐▌ █ on August, 18 (which is my birthday), 2020 (which is not my birth year).
' ▐▌ ▝▚▄▞▘▐▙▄▞▘▐▙▄▄▖▗▄█▄▖▗▄▄▞▘▐▌ ▐▌▐▙▄▄▖▐▙▄▄▀ ▐▙▄▞▘ ▐▌ ▐▙█▟▌▗▄█▄▖▐▌ ▐▌▐▙▄▄▖▐▙▄▄▀ , ▐▌ ▐▌▝▚▄▞▘▝▚▄▞▘▝▚▄▞▘▗▄▄▞▘ █ ▐▌ ▐▌ ▐▌ ▐▙▄▞▘▗▄█▄▖▐▌ ▐▌ █ Anyways...
'
+-----------------------+ | | | | +-----------------------+
It's a normal afternoon in July.
I'm at work in my little corner, speaking into the camera. The
children are in their rooms, regressing. I leave the bedroom-office to get more coffee. My
spouse is in our small kitchen, kneading dough while on a video call of her own. I eavesdrop
for a minute. She's not a programmer, but she's talking about a database. The database lists
people who need food, cooks, drivers, and deliveries.
We are past the New York City Covid-19 peak. Things have started to reopen, but our
neighborhood is in trouble, and people are hungry. There's a church that's opened space for
a food pantry, a restaurant owner who has given herself to feeding the neighborhood, and
lots of volunteers. You have to get calories to people, so you need aluminum trays, baking
flour, gas, schedules, and phone numbers. You need to know who's halal or vegetarian and
who wants turkey wings. It's a complex data model. It involves date fields, text fields,
integers, notes. You need lots of people to log in, but you need to protect private data too.
You'd think their planning conversations would be about making lots of rice. But that is just a
data point.
The tool the mutual aid group has settled on to track everything is Airtable, a database-as-aservice program. You log in and there's your database. There are a host of tools like this
now, “low-code” or “no-code” software with names like Zapier or Coda or Appy Pie. Amazon
just launched its own, called Honeycode. At first glance these tools look like flowcharts
married to spreadsheets, but they're powerful ways to build little data-management apps.
Airtable in particular keeps showing up everywhere for managing office supplies or
scheduling appointments or tracking who at WIRED has their fingers on this column. The
more features you use, the more they charge for it, and it can add up quickly. I know
because I see the invoices at my company; we use it to track projects. (Though Airtable has
made its Airtable Pro plan free for certain Covid-related efforts like the mutual aid society.)
“Real” coders in my experience have often sneered at this kind of software, even back when
it was just FileMaker and Microsoft Access managing the flower shop or tracking the cats at
the animal shelter. It's not hard to see why. These tools are just databases with a formmaking interface on top, and with no code in between. It reduces software development, in
all its complexity and immense profitability, to a set of simple data types and form elements.
You wouldn't build a banking system in it or a game. It lacks the features of big, grown-up
databases like Oracle or IBM's Db2 or PostgreSQL. And since it is for amateurs, the end
result ends up looking amateur.
But it sure does work. I've noticed that when software lets nonprogrammers do programmer
things, it makes the programmers nervous. Suddenly they stop smiling indulgently and start
talking about what “real programming” is. This has been the history of the World Wide Web,
for example. Go ahead and tweet “HTML is real programming,” and watch programmers
show up in your mentions to go, “As if.” Except when you write a web page in HTML, you are
creating a data model that will be interpreted by the browser. This is what programming is.
Code culture can be solipsistic and exhausting. Programmers fight over semicolon
placement and the right way to be object-oriented or functional or whatever else will let them
feel in control and smarter and more economically safe, and always I want to shout back:
Code isn't enough on its own. We throw code away when it runs out its clock; we migrate
data to new databases, so as not to lose one precious bit. Code is a story we tell about data.
But programmer culture tends to devalue data. The database is boring, old, staid technology.
Managing it is an acronym job (DBA, for database administrator). You set up your tables and
columns, and add rows of data. Programming is where the action is. Sure, 80 percent of your
code in Swift, Java, C#, or JavaScript is about pulling data out of a database and putting
data back in. But that other 20 percent is where the action is, where you make the next big
world-shaking thing. Which is great! Go to! But don't forget that most of the world is trying to
manage their small business with a really messy spreadsheet.
We throw code away when it runs out its clock; we migrate databases so as not to lose one
precious bit. Code is a story we tell about data.
I've always loved that moment when someone shows you the thing they built for tracking
books they've read or for their jewelry business. Amateur software is magical because you
can see the seams and how people wrestled the computer. Like outsider art. So much of the
tech industry today is about making things look professional, maybe convincing Apple to let
you into the App Store to join the great undifferentiated mass of other apps. That's software.
When people build their own Airtable to feed the neighborhood, that's culture.
Meanwhile my wife is becoming a data modeler. She has new friends on Slack, and they've
divided the neighborhood into zones, to cluster deliveries. They write notes in the notes field
in Airtable, and people read and respond to those notes. Community happens that way. The
community creates the data, and the data represents the community. Beats doing nothing.
Our giant social networks are just databases too. Of course they own all the data, and the
data model. You would never use Instagram to manage food deliveries. Instagram is for
uploading photos, looking at photos, and liking photos in endless sequence. But really all
that's different here is that, instead of liking photos—not the worst thing a person can do,
mind you—people are making sure a nice elderly lady gets callaloo greens. Or even a crabby elderly lady.
Or even chard. It's the same basic technological deal, except the energy
of the conversation flows out of the community instead of into the platform. No one owns
their network, although the data lives on servers controlled by Airtable.
I get asked a lot about learning to code. Sure, if you can. It's fun. But the real action, the crux
of things, is there in the database. Grab a tiny, free database like SQLite. Import a few million
rows of data. Make them searchable. It's one of the most soothing activities known to
humankind, taking big piles of messy data and massaging them into the rigid structure required of a relational
database. It's true power. Or mess around with Airtable or its no-code
ilk. If you do it long enough and work with friends, you can do wonderful things. You can build
data models that work well enough to feed people who need the help. That's real
programming.
+-----------------------+ | | | | +-----------------------+