Pithecophaga jefferyi

For the last while I've been making an effort to go all-or-nothing on my habits. If I intend to write first thing and I don't, then I don't write anything that day and fill the space with a birdpost later. This has been challenging, but I feel ultimately beneficial in avoiding atonement; I don't fool myself into thinking I'm doing better than I am by fixing it later. Separately, though, I've decided to keep writing at the same time each day even when I'm behind, and break the connection between writing and posting. Instead of using my writing time to make up for some writing I should have done previously, I use it to write, and fill in missing posts when I have extra time.
The unfortunate outcome of this is that it sometimes takes a while for me to find that time, so I end up with a big backlog of unpublished writing that I occasionally flush out in one big go. I'm sure that's not ideal for anyone trying to read along, but it also has an unfortunate effect on the effort required to post things. Normally there are a bunch of minor things that go along with each post, formatting, a bit of last-minute editing, little drawings and so on. Those minor things aren't a big deal when I'm doing one post at a time, but when I'm doing 7 in one go it really adds up.
Years ago I was running a volunteer group that had around 150 volunteers in it, and the thing that surprised me more than anything else was how even that multiplier, modest by organisational standards, made everything so difficult. It might take ten seconds to print some training handouts, but for 150 people that's 25 minutes. If you need to have a 2 minute phone call with each volunteer, it'll take 5 hours. A half-hour debrief with each volunteer would take 2 entire work weeks. The tyranny of the multiplier means there's a lot of things you just can't do, or can only do with careful structure and planning.
But it also strikes me that the multiplier can be in your favour as well. As I write this I'm closing in on 200,000 words written on this site. I would never dream of writing that many words for a project. If someone asked me, I'd have no idea how to even think about it. For reference, A Game of Thrones (the first book) is close to 300,000 words, which I'm likely to hit sometime before April, putting me at something like one Game of Thrones every two years, or 0.5 GoT/y.
What's amazing about this is that I'm not anything close to a full-time writer. I write for about an hour a day most days. Whenever I wonder whether slow and steady progress is better than occasional heroic bursts of effort, I just try to imagine the kind of heroic effort that would be required to produce this many words. I think it would kill me.
One thing that makes conversations around programming difficult is that there isn't really one kind of programming. It'd be like saying "everyone should learn how to make buildings". What does that mean? Architecture? Civil engineering? Interior design? Construction management? Crane operation? Plastering? You might even find yourself saying ludicrous things like "you don't really know buildings unless you know how to wire a light fixture". Which makes perfect sense if you think of making buildings as a trade, but not at all if you think of it as engineering.
I think we're often led astray by the way that most programming skills look the same. Ultimately, you type symbols into a black window on a computer. Hopefully that won't always be the case, but for now at least that's where everything ends up. But let's not forget the vast number of skills that end with "and then you type words into a document or an email". Sure, typing words is a big deal if you don't know how to do it, but just being able to construct sentences isn't going to give you a law degree, or teach you how to run a business.
In recent years there's been a big uptick in what are essentially programming trade schools. They don't teach the foundational theory of computer science, they teach how to build a website, or how to make an app. You learn how to use particular tools and frameworks, but not the theory that unites them all. You come out with the skills to make stuff, but not the exhaustive knowledge that lets you think new thoughts in computing.
So is that a bad thing? I don't think so. If what you want is to build a website, just learning the tools is the hardest part. More importantly, I think that a single-minded focus on theoretical computer science is actually a distraction for people who only want to make websites. Not every builder needs to be an engineer, a construction manager, an architect and an HVAC expert. And realistically, most good programmers I know started by just writing whatever code worked and learned the theory behind it later.
I don't even think the trade/theory divide is enough. Programming can be art, a purely creative exercise in the space of code. It can be design, using code to creatively satisfy goals and constraints. It can be engineering, structuring code to be efficient and tolerant to failure. It can be a trade, with specialists in particular technologies and tools. It can even be a craft, something you do mostly for yourself for fun or to satisfy your particular needs.
Ironically, one of the few things that software really isn't is a science. What we call computer science would maybe better be described as a kind of mathematics or philosophy, concerned with constructing and describing theoretical spaces and their characteristics. That exception aside, programming is a big tent, and the less we worry about everyone being able to do everything the easier it's going to be to fill it.
I've been thinking recently about the problem of online reputation. I wrote about this a while back in Anonymity and democracy, where I argued that the main problem is the assumption that identity has value. When the cost of creating an identity is less than the inherent value you give it, you've created a loophole in your system that people will exploit. But even if you require users to earn value on your system, how does that translate to other systems?
This seems particularly relevant in the context of Cloudflare's problems with Tor. Tor makes users anonymous, breaking the association between IP address and user. That's good because you can't really have privacy if every site you visit knows your address, but it's bad because that address is used to maintain a user's reputation. Cloudflare disproportionately shows CAPTCHAs to Tor users, because there's no way to tell who each request is from. By using CAPTCHAs, they add a human time cost to each new user, which removes the loophole.
It would be nice if you didn't have to start from scratch on every site, but instead could carry your reputation with you. The problem with that is you would be giving up privacy, because that reputation could be used to track you, or correlate your identities across multiple sites. One fairly robust solution to this would be an evil bit, which you set on your messages to mark them as malicious. Unfortunately, it only works if all the malicious actors cooperate. But could we make a good bit?
I'm imagining a good bit being a token that each site hands out to users with a good reputation. For many sites that would just mean that the user has logged in, but you could also have more sophisticated levels of reputation, like a user with a long account lifetime, verified email, or who has proved their value in some way. You would collect a bunch of these tokens from different sites you use. These good bits don't say anything about who you are, just that the site is willing to reputationally vouch for you.
To make something like this actually resistant to different sites colluding to figure out your identity would require some kind of clever asymmetric crypto scheme, but I think it should be possible. Essentially you'd need to prove you've been issued a good bit but not reveal which one it is. You'd also need some kind of revocation or expiry/renewal system. Ultimately the whole thing could fall back on existing CAPTCHA or account-based reputation systems, so false negatives wouldn't be so bad, and individual sites could have their own set of rules for which sites' good bits they trust and how much.
This definitely seems like a problem worth looking into; our virtual identities are getting more and more sophisticated, and if we want to keep building privacy into our systems we're going to have to find better systems for reputation.
I'm a big fan of humble ignorance, the practice of recognising and accepting the limitations of what you know. Humble ignorance allows you to learn, because you can approach a situation in the hope that it might take away some of those limitations. Without humble ignorance, you might avoid these opportunities because, well, you already know all of that anyway. Why bother? I would call humble ignorance the core philosophy at the heart of science, becuase humble ignorance tries to eliminate itself, leaving knowledge in its place.
But there's another kind of ignorance that, instead of eliminating itself, celebrates itself. Instead of eventually turning into knowledge, this kind of ignorance encourages you to recognise your limitations and then not do anything about them. Worse still, it encourages you to feel superior about your ignorance, as if those who aren't ignorant are missing out on something. I call this sexy ignorance.
Sexy ignorance can take a few forms, and one of the most common is mysticism. By mysticism I mean the celebration of mystery, in the sense of attempting to preserve it or hold it as a primary value. Fine for magic shows, but not great as a general philosophy. This can be obvious nonsense like saying "nobody really knows how the brain works" to sound smart at parties, or more subtle nonsense like quantom consciousness, whose main support seems to be that "consciousness is mysterious and quantum mechanics is mysterious, so maybe..." It's fine to say that there are still things we don't know, but it doesn't pay to get too attached to not knowing. There are lots of humble ignorants working on it, and it's not going to be true forever.
The other kind of sexy ignorance that seems to be fairly common is a kind of superior disaffection. Pokemon? I don't know anything about that! Hip hop? Never listened to it! Computers? I can't even use one! After all of these statements is a small space left for applause from whoever you're talking to. "Wow", they will say, "it's so impressive that you don't know anything about that!" In a sense, it's a kind of mutated modern puritanism, where the thing you need to prove your cleanliness of isn't impure sexual thoughts but impure enjoyment of things that are enjoyed by the wrong people. It creeps up on you, too, because the things it's cool to be ignorant of change from generation to generation.
This last one may seem superficially similar to arrogance, but there is a subtle difference. Arrogance says "I already know about that kind of thing, so I don't need to learn about it", sexy ignorance says "I don't know about that thing, but that's better than knowing about it". Both result in avoiding new knowledge and experiences, but only sexy ignorance attempts to profess that doing so makes you a better person.