“I am the programming equivalent of a home cook.”
February 16, 2020 4:00 PM   Subscribe

“I made a messaging app for, and with, my family. It is ruthlessly simple; we love it; no one else will ever use it.” —Robin Sloan, An app can be a home-cooked meal. [via Lobsters]
posted by oulipian (35 comments total) 84 users marked this as a favorite
 
Just read this. Liked the underlying idea a great deal.
posted by WCityMike at 4:11 PM on February 16 [2 favorites]


That was beautiful and this was really touching:
A selfie with coffee, a picture of an ice-covered pond, a video of my nephews being goofballs: I’m thinking of you, I’m thinking of you, I’m thinking of you.
I would LOVE something like this.
Also I feel like I'm also somewhat of a home chef in coding but I wish I was much better & knew enough to make something like this just like I wish I knew how to cook something other than baked chicken & vegetables.
posted by bleep at 4:12 PM on February 16 [5 favorites]


I love this acknowledgement that programming can be for making things that don't have to find a wide audience.

I wrote a Mac app for my little sister to handle a specific task she needed. I uploaded it to my web site, so anyone can download it, but didn't do anything active to promote it. Has anyone other than her (and me) ever used it? I don't know, and I don't care.

I have an iPhone app that my girlfriend and I use for weightlifting that I haven't bothered to upload to an app store. I don't want to polish it for sale. I don't want to field feature requests and bug reports from strangers. They wouldn't pay me enough to make it worth my time.

I have a bunch of websites out there that probably only my friends and I have ever used.

It's fun to make things that do just what you need them to and don't try to be everything to everyone. Programming can be so satisfying for that. Look! I made a thing!
posted by aneel at 5:00 PM on February 16 [45 favorites]


I love this for representing the kind of thing software used to be about, but using modern tools and stacks. I'd really appreciate this as a github project with an easy-to-understand deployment model, but I suspect adding that layer to the project would quickly make it unappealing for then needing to take account of yet another audience.
posted by odinsdream at 5:11 PM on February 16 [5 favorites]


I have, over the course of a varied career in law, insurance, and advocacy, made several home cooked programs in Excel, of all things. Basically complicated sheets that performed highly specialized functions that only I and a couple of other people, perhaps in one case a dozen, ever needed.

The joy of home cooking like this is directly correlated to its frustration. Not the programming itself, of course, but the fact that, once done and done right, there is nearly nobody to crow to about one’s accomplishment.
posted by gauche at 5:28 PM on February 16 [6 favorites]


I love this acknowledgement that programming can be for making things that don't have to find a wide audience.

Exactly! I feel like one of the more damaging exports of Valley culture is the idea that software is a success only if it exists at scale.
posted by wordless reply at 5:46 PM on February 16 [53 favorites]


I feel like one of the more damaging exports of Valley culture is the idea that software is a success only if it exists at scale.

Yeah! And the corollary that it's only a success if it can handle scale. It feels very similar to the professionalization of music, where you're doing it because you're trying to make it big and if you're still doing it even though you obviously won't make it big is somehow sad or pathetic. There are so many personal contexts where making small bits of music or software is a wonderful thing and it's a shame that people are dissuaded from doing so because of that sense that everything you do in the field has to have mass reach and appeal.
posted by invitapriore at 7:07 PM on February 16 [33 favorites]


John McPhee nicely describes a text editing application that’s been extended and customized to support his writing for the past four decades:
He wrote Structur. He wrote Alpha. He wrote mini-macros galore. Structur lacked an “e” because, in those days, in the Kedit directory eight letters was the maximum he could use in naming a file. In one form or another, some of these things have come along since, but this was 1984 and the future stopped there. Howard, who died in 2005, was the polar opposite of Bill Gates—in outlook as well as income. Howard thought the computer should be adapted to the individual and not the other way around. One size fits one. The programs he wrote for me were molded like clay to my requirements—an appealing approach to anything called an editor.
posted by migurski at 7:24 PM on February 16 [19 favorites]


I love this acknowledgement that programming can be for making things that don't have to find a wide audience.

This is, to my mind, what hacking was always meant to be. It's to solve your own problems. Or to have fun. Or both!
posted by BungaDunga at 7:53 PM on February 16 [6 favorites]


There are so many personal contexts where making small bits of music or software is a wonderful thing and it's a shame that people are dissuaded from doing so because of that sense that everything you do in the field has to have mass reach and appeal.

This is true for writing, art and other pursuits as well.
posted by NotLost at 9:06 PM on February 16 [13 favorites]


Just a couple of days ago I found myself writing a small Python program to do some calculations in a complicated bit of magical gemmatria. I probably took about three times as long trying to write it in a succinctly Pythonic way than it would have taken to bludgeon the problem into submission with some BASIC-like for-next loops, but I did enjoy the process a bit more by trying to make it succinct and elegant.

I’ve got various other little scripts in my life, in various languages, with varying amounts of attempts at elegance. Some things I just want to work and I don’t care how ugly it is under the hood. I’ve been paid to program stuff in the past and I really never want to again, but I’m definitely glad I have the skill at a “home cooking” level.

There’s probably a cooking analogy for “sometimes you just wanna delve into fiddly but pretty process that really makes no difference once you’re at the point of putting the food in your mouth and chewing” but I am utterly useless in the kitchen so I cannot make it.
posted by egypturnash at 9:24 PM on February 16 [7 favorites]


This has made my day.

We (speaking only for myself here) have forgotten over the years how to code for fun - everything had to have a market. Robin Sloan does it like it should be done - we cook so we can eat better; everything else is gravy.

35 years ago I wrote a ZX Spectrum text adventure game for my brothers. As far as I know, only three people have ever played it. A few years back a faded printout, on silver thermal paper, emerged from a dusty storage box belonging to one of my brothers. He sent it to me, I keyed it back in (in the meantime fixing a bug which had sat there undetected all those years) and we're playing it again on emulators.

Now my head goes 'What if we all wrote a communication app like Robin Sloan's, just for our own loved ones, and all cooperated to include some universal component so the different apps would mesh? Then we could replace mainstream social m...'

That's where I told my head to shut up. That's the point. We don't need a market. Start at home, do it for love; then if it is going to grow, it will happen naturally, and if it doesn't, then it doesn't matter.
posted by Cardinal Fang at 12:36 AM on February 17 [13 favorites]


Thanks for posting this. Makes me want to do something similar for a group of far-flung, busy friends.
posted by harriet vane at 1:58 AM on February 17 [1 favorite]


Now my head goes 'What if we all wrote a communication app like Robin Sloan's, just for our own loved ones, and all cooperated to include some universal component so the different apps would mesh? Then we could replace mainstream social m...'


You invented Mastodon!

I am a home cook type coder. I like to do stuff for myself and coding has nothing to do with my day job, but I enjoy the creating aspect. None of my code is elegant, well except the 95 percent stolen from Stack Overflow, but I like that I am capable of problem solving and I like being able to go from idea through to making something that actually works.
posted by Literaryhero at 4:33 AM on February 17 [6 favorites]


I don’t code for home use, but I don’t think any of the code I’ve written has ever been used outside of me. Scientific computing runs the gamut from massive projects deployed to thousands of scientists or millions of members of the public, down to me, writing a few hundred lines of code to make a picture I hope to publish.

Access to scientific code is changing, as many publications and funding sources are increasingly demanding code be posted publicly. So it will be an interesting time when the vast majority of science code is forcibly put out into the world. Licensing will be... odd.
posted by SaltySalticid at 4:42 AM on February 17 [2 favorites]


For the most part, my programming work has been for an audience of less than ten people, usually just one, so could easily fall into the "home cooking" category. The most silly (and fun!) was reimplementing HyperSpin in PyQt because it seemed easier than doing the necessary configuration to make HyperSpin nice with the over 60+ tables I had on my VP cabinet.

Aside from it being very early days for any of the Python Qt bindings leading to some difficulties translating plain Qt docs into something that worked in Python, it was actually one of the more fun projects I've done. It also finally made me resolve to use source control by default after losing basically the entire project to a sudden SSD failure. Come to think of it, it was also the thing that made me start to reach for Python by default for jobs that don't have an immediately obvious better alternative.

I probably should be more proud of the Google Voice before Google Voice that I wrote for the use of one guy who was spending way too much on long distance, but seeing as maybe four people ever ended up using it, it doesn't seem like much of an accomplishment, no matter how ahead of its time it may have been.
posted by wierdo at 6:44 AM on February 17 [2 favorites]


I'll cynically note here that what the writer in the posted article is actually doing is more like cooking at home and then posting it on Instagram. At the bottom of his page is a request to sign up for his newsletter. On the main page there are links to his novels and to his actual Instagram. It's part of the hustle.

I'm not criticizing the author here for doing it. This is how life is now apparently. A huge number of people who write programs nowadays aren't just scratching an itch, they're thinking about whether to put it on GitHub, is it portfolio-worthy, etc.
posted by bright flowers at 6:51 AM on February 17 [5 favorites]


I don't write code any more professionally, but when I did at least 50% of it was the equivalent of 'home cooking' as in only meant to accomplish small time testing tasks or to do some sort of monitoring that was maybe relevant to my own dev team but to no-one else and never included in our official bundles. I also 'home cook' programs at home that have nothing to do with my work and that I have no interest in publishing.
posted by The_Vegetables at 7:18 AM on February 17 [1 favorite]


This messaging app I built for, and with, my family, it won’t change unless we want it to change. There will be no sudden redesign, no flood of ads, no pivot to chase a userbase inscrutable to us. It might go away at some point, but that will be our decision, too. What is this feeling? Independence? Security? Sovereignty?

Is it simply… the feeling of being home?
That feeling right there? That's why all my boxes run Debian, not Ubuntu, and certainly not OS X or Windows.

Of the users, by the users, for the users.
posted by flabdablet at 7:53 AM on February 17 [4 favorites]


I probably took about three times as long trying to write it in a succinctly Pythonic way than it would have taken to bludgeon the problem into submission with some BASIC-like for-next loops, but I did enjoy the process a bit more by trying to make it succinct and elegant.

I think of this kind of thing as Software as Sculpture, and feel genuine pity for people who can only see it as a waste of time.
posted by flabdablet at 7:56 AM on February 17 [5 favorites]


On the subject of how publishing your work leads to bug reports, feature requests, and other interactions with users, I found this post (via the wonderfully cynical webshit weekly (previously on the blue) did a good job articulating some of the stress that a successful project creates for developers who might have just wanted to share something with the world and didn't necessarily want to commit all of their surplus development resources to making their creations everything the community wants them to be.

I haven't published anything nearly as popular as the author has, but even my very part-time work as a co-maintainer of a project with ~2k stars on Github and my tiny projects with a dozen or fewer have created an expectation of a level of support that I'm not always committed to for every project I'm involved with. Even when the users are patient, the non-zero number in the open issues page is sitting there, reminding me that someone wanted a fix or a feature and hasn't gotten it yet.

It's still a very fun hobby at times, but the simple fact is that despite the fact that tech is eating everything and people are drowning in software applications, there is always demand for more and better applications, and only so many people with the time and motivation to do the work required.
posted by tonycpsu at 8:20 AM on February 17 [2 favorites]


For this, you sort of would need to have a close-knit group (such as a family inured to your DIY experiments) willing to indulge you.

Getting people to use social software is a lot harder than building it. It's hard enough getting people to devote a browser tab and some attention to a website (when the usual answer will be “for God's sake, why don't you just use Facebook/Instagram like everyone else?”). Getting them to install your own app on their phone seems an order of magnitude harder. (Especially since there's a degree of trust involved; I'd be reluctant to sideload an app from someone unless I trusted them.)
posted by acb at 8:24 AM on February 17 [2 favorites]


It is ruthlessly simple; we love it; no one else will ever use it.

Hell yes. People ask why I love Linux, given the amount of time I have to spend figuring things out (I'm not actually computery).

This. It's actually really satisfying to build the tools to build the tools.
posted by pseudophile at 8:25 AM on February 17 [3 favorites]


It doesn't have to be social to be "home-cooked," though. I'm on vacation from my real programming job at the moment, and what have I done? Taken some time to continue refactoring the app I built for myself and no one else to track my video game playing and purchasing habits in ways that no other site I've found allows. No one else will likely ever use it, especially not in its current state. It involves a lot of work to record time that most people would never put up with. It's specifically something built for my needs and my needs alone, and decade-old code cruft aside, it's great.

Its secondary purpose is really to let me experiment with new technologies, which is why I'm busy rebuilding a huge form in React. So I guess in that sense it's partially a market-driven thing even if I never intend to release it.
posted by chrominance at 9:13 AM on February 17


As someone who used my own window manager for years, I can appreciate this. But, I later discovered that making a few tiny tweeks to openbox works much better and doesn't break other people's software nearly as often as mine did. In making it I learned a lot of things that I will never use again and wasted weeks that could have been spent on more interesting things. I'm not sure learning about fiddly X details that have probably changed since then was worthwhile. In retrospect, I wish I'd spent more time looking around for existing alternatives first.

I feel like there's been a bit of shift recently in my own narrow science subfield from local homebrew software that only a handfull of close collaborators will ever see to everyone wanting to publish code as named projects. I suspect it leads to better code. But, it sure takes a lot longer in the short term, at least for me. There's a happy middle somewhere between "hard-coded values with inscrutable variable names in one giant, uncommented file" and "a general purpose module that handles any possible kind of input and includes extensive documentation" that I rarely manage to hit.
posted by eotvos at 10:12 AM on February 17 [3 favorites]


> I feel like there's been a bit of shift recently in my own narrow science subfield from local homebrew software that only a handfull of close collaborators will ever see to everyone wanting to publish code as named projects. I suspect it leads to better code. But, it sure takes a lot longer in the short term

Yes, exactly. And it's been helped along by Github and efforts like the Astrophysics Source Code Library: Much of scientific progress now hinges on the reliability, falsifiability and reproducibility of computer source codes.
posted by RedOrGreen at 10:49 AM on February 17 [4 favorites]


My son was having trouble with learning the multiplication table. So I wrote a small quizzing program, using python and the CLI, which would ask what's 5×6, etc., and, if he got it right, would spell out a random congratulatory phrase ('right on', etc), using a python library that rendered the letters in a random style of colored ascii art. It looked amazing. It would also remember what he'd had trouble with and keep asking those combinations until he got them right.
He thought it was awesome that I had written it especially for him, so he used it, and learnt how to multiply.
A few years later, he's in the top of his class in math and I'm teaching him to program.
posted by signal at 11:05 AM on February 17 [14 favorites]


I'm particularly fond of the home cook comparison at the moment because the app I've been using for recipes and shopping lists has decided to go to a monthly subscription model. I do not need yet another bloody subscription so I'm writing my own. Home cooking an app so I can home cook my meals!
posted by Mister_Sleight_of_Hand at 1:57 PM on February 17 [4 favorites]


Programming started off as a Bletchley cottage industry, but then what happened? The same thing that happened in the music industry. We sold the fuck out! (We, the programming industry, that is; not accusing anyone here.) Tech is lousy with millionaires it's created and the billionaires it's created are practically household names - their companies/products definitely are. Why build a labor of love, for love, when a couple people built and sold GrandCentral to Google for $50 freaking million in 2007?

Does the cooking analogy always hold? Are the arguments for and against the idea that everyone should know how to cook, also hold for the notion that everyone should know how to code, even just the simplest app.

---

If it weren't for silicon valley funding for ridiculous scale, could Tapstack have survived at $50 for a family pack of licenses? Could BoopSnoop? The kids computer toy is one that I've heard made a couple of times. A great big heavy clacky mechanical keyboard with a raspberry Pi inside, for a modern take on the ZX Spectrum, would be a freaking awesome product. First to play with, then to learn to type and then to program. Sadly, the market just doesn't seem there, not with the funding that would be required to exceed the opportunity cost of making it. So, like cooking, there will always just be a spectrum, from pasta and pre-made pasta sauce at home, to Michelin stars and TV shows, where some people get paid a lot, and others a pittance (not the same as in town).

---

For those interested in building/program a something with/for their family (biological or chosen), Expo.io might be what you're looking for. Lets you make an iOS/Android/Web app with a modicum of lock-in. Glitch.com is similar, but web only. For iPhone specifically, there's Pythonista 3 to be used on-device, or Swift Playgrounds, which had new release recently that sounds interesting.
posted by fragmede at 4:08 PM on February 17 [5 favorites]


fragmede: thanks for those recommendations. I'm starting to go through them and as a former sysadmin I have to say Expo.io lost me at the step right after installing npm. I'm going to keep trying, but holy shit this looks really fucking hard and i'm mad now.
posted by odinsdream at 5:22 PM on February 17


I used to dread using github expecting feature requests and bug reports. And there’s a certain professionalism involved that makes you feel as if everyone is looking at your career and you can’t publish anything unless it has a stamp of approval. Then I just started publishing stupid stuff. The pub down the street had WiFi that didn’t work. I spent a day figuring out how the login page works, then fretted about all the edge cases (what if I had two WiFi adapters?! I was just grabbing the first one!) and eventually gave up and just threw up what worked for me. It was really liberating, I also provided in depth information as to how it worked, so if someone ever got in a similar position they could make it work for them. Now I throw up all kinds of half finished things on GitHub, no matter how stupid. It sort of serves as a diary or notebook of figuring out how something larger works. I had to get out of my head that this isn’t corporate, I don’t have to put up 10 pages of “WILL ONLY WORK IN THESE SITUATIONS.” Nothing I do is popular and you can argue half ass (no unit tests!) but at least it is out there and I put my specs on how to build it, it is better then sitting on my laptop never going anywhere.
posted by geoff. at 2:42 AM on February 18 [4 favorites]


As a version of "mise en place" for python, I recommend cookiecutter for taking care of all the boilerplate stuff that makes a home project easily deployable. Find a recipe for py3 modules that is to your liking and you're ready pip install a one-off script in 5 minutes.
posted by benzenedream at 8:45 AM on February 18 [3 favorites]


I remember rolling my own rudimentary blog on a LAMP setup I had in my closet that was connected to the wider internet. It was pretty easy and fun but the second I heard about b2 I moved over to that and then Wordpress and then stopped running my own server. I still pay for server space in the hope that me or my nephew might have some projects we might want to put up there but we never do. My daughter is getting into coding so maybe that'll be something that she wants to do.
posted by any portmanteau in a storm at 1:50 PM on February 18


I like this, because it recontextualizes a lot of little programming projects I've done in the past. I have lots of little web apps of varying quality that I wrote because I was interested and wanted practice. Not to mention the little one-off spreadsheets I wrote to save myself time and effort at work. I could use someone else's app or page, but the ones I wrote and still use work the way I want them to work. I'm not sure I ever thought of them as a waste, but now I'm starting to see them as beloved little projects that have value even if the code is run rarely or never again. They served their purposes, I did the best I could with each one, and there's value in that. Not everything has to be used forever or by millions to be valuable.

I have two Android apps in the store. It tickles me that combined they have nearly 2,000 users, but it doesn't actually matter to me whether people use my apps. There's no tracking or monetization, the point was never to get users or get recognition or make money. There are hundreds of nearly equivalent apps out there. The point is I wanted apps that work exactly the way I want, and if other people like the way I have designed them then they are free to use them too.
posted by Tehhund at 7:17 PM on February 19 [1 favorite]


. A great big heavy clacky mechanical keyboard with a raspberry Pi inside, for a modern take on the ZX Spectrum, would be a freaking awesome product.

The PiTop?
posted by BungaDunga at 12:41 PM on February 20 [1 favorite]


« Older …mounds of dung and worm-eaten corpses, the...   |   The Wildness of Maurice Sendak Newer »


This thread has been archived and is closed to new comments