2024-05-26

  • It’s interesting to see things evolve over time. The specific thing” this time is programming. And the interesting evolution is around how programming feels. In the past, I’d do my best to write a working program that solved a problem. And I did mostly solve the problems. Unfortunately, it was often a struggle. I’d end up writing extremely complicated code that was easy to mess up in several ways (trivial and otherwise). But I would finish the task and that was generally good enough,” (and the best I could do with the time and abilities at my disposal). But these days things are different. I do still mess things up (trivial and otherwise), but with less frequency. A big change is that now, when I write code, I have a much stronger sense for whether the shape” of a program is likely to be good or bad. A good shape is one that minimizes errors, leads to the code flowing more easily. A bad shape…well it’s the opposite. In the past, I’d only be able to assess the shape after I finished the program. I’d realize oh, that would have been easier if this thing was over there.” But now, I can feel it in the moment of writing. And then I can go back and figure out a better shape upfront. Also a change here is that I usually identify shape issues around the structure of data and the dependencies between pieces of code. A secondary source of shape issues is improper mastery of the programming language or poor language design. But it’s really cool and interesting to have this sense emerge from long term experience. A real joy of programming. Another thing of interest is that it’s really a feeling in the sense that it has soft edges. I don’t always know right away what is wrong and often do a check of those things above to get more clarity. But the fuzziness of it makes me wonder if it’s sort of the same fuzziness you see in statistical phenomena. This would make some rational sense. That basically, if we shifted from the emotional/“feeling” space of language into more rational-focused analysis, I’ve now written (statistically) a large enough amount of code/number of programs that I can tell when a shape is wrong by doing a loose statistical comparison between the shape of past programs and the shape of the current one. Bleh, that’s a badly shaped sentence, right there. But I wanted to get that idea out: maybe this feeling I have is also connected to a certain not-totally-amorphous statistical reality of the world. And this would make sense! As feelings, if working properly, will be correlated with reality generally.
  • Today I met up with a friend and we talked about doing a trip to Joshua Tree for an upcoming weekend. At one point, we discussed whether to include a friend of ours who had a toddler. My buddy said, look, we love the little guy, but he can sometimes be…a lot.” On the one hand, I can understand why this could be a vibe problem. Screaming toddlers definitely change the vibe. No need to pretend that it’s always fun. On the other hand, it really rubs me the wrong way to exclude members of a community on this basis. I spent some time reflecting on this. And I think it kind of goes back to a big tent” approach to community building that I hold to quite strongly. I contrast this approach with the walled garden” one that I also see pretty commonly. In the walled garden” approach, the goal is often to select for exactly the right people, and be very comfortable excluding people who do not match a particular, cultivated vibe. And it’s an approach that seems to work well for many people. And, of course, people should adopt whatever approach works for them. With that said, it is not my approach. I don’t really enjoy walled garden vibes, even when I am privileged” to be selected for entry. I am a big tent” man. I belong with the big tent” people. These days, I trace this back to my older brother. Probably the main reason I am a big tent” person is that my brother has, for his whole life, been excluded by every walled garden” person he’s met. This is largely because he is on the spectrum. And so, when faced with my own decision on what kind of community to build, of course I could not put up the same walls that were used to keep out my own brother. No. I instead choose to build a tent. A large tent. Big enough for all kinds of people, across all kinds of spectrums. And, yes, with plenty of room for toddlers.
  • New good use for GitHub copilot: generating test code. I’ve seen people mention this online. Can confirm. Good stuff.

Date
May 26, 2024