Since I can never remember their individual names, it’d help me a lot if all pugs were named “Puggers” from here on out. “Mugsy” would also be acceptable, but I might get them confused for bulldogs idk.
At least once a week, I wish I could go show fourteen-year-old Adam Diamonds and Pearls and Enter the Wu-Tang so that I’d have much better musical taste much earlier.
Coding without a computer, designing without a design
A thing I want to try is coding offline, per se. Without a functional computer (like a tablet). Think first. Outline and sketch a solution. Maybe pseudocode it up. Then fill it in and make it work once a “real” computer is available.
Related: think first, outline/sketch a solution, only use the computer once I’m ready to build.
Related related: what if frameworks like Rails, Django, etc. are scaffolds that we attach boilerplate-ish behavior to while we’re trying to figure what a program really wants to be? How many essay-sized programs are hiding in novel or encyclopedia-sized systems?
Basically: I want to code without computers more often, and discover more program designs that are lurking within the design of a framework.
Vacation reads
It used to be that all the programmers were ladies. Arguably, they were higher skilled programmers since they didn’t have little luxuries like text editors, REPLs, and online communities to problem solve with! Things were different back then, and they could be better again - The Secret History of Women in Coding - The New York Times
I finally looked into The Pudding and came upon many a delightful visual essay: Rappers, sorted by the size of their vocabulary and The Structure of Stand-Up Comedy on the cycles in Ali Wong’s famous set.
A list of non-hacks, mostly about sleep, that might help you feel better. 7 Biohacks That Actually Work - The Atlantic
A bit dismal: Dictators have reemerged as the greatest threat to the liberal democratic world - The Washington Post. Improvements to liberalism that could counter said rise of dictators and nationalism: The Economist at 175 - Liberalism.
The degree to which the tradecraft of national intelligence agencies are applied in the private sector continually appalls me. But apparently its part of the game for at least one activist investor. Paul Singer, Doomsday Investor | The New Yorker I think probably we’re doing capitalism wrong at this point?
On James Cameron. A man creatively possessed, but a crude man at a best.Man of Extremes | The New Yorker
Javier Grillo-Marxuach (LOST and a bunch of other stuff) on running a television show, but absolutely applicable to any creative leadership discipline.
On Barry, the loveliness, and apparently the sadness that is Bill Hader. Bill Hader Kills | The New Yorker
I think with my mouth. Often that means I start talking with some idea, realize that the idea isn’t as hefty as I originally thought, and end up talking until I reach a moment of mild truth. Which often ends up being a platitude.
Shutting up: it’s a thing I’m working on.
In the world where data-privacy and GDPR compliance matter, owned/onsite analytics stacks like this seem promising bostata.com/post/clie…
Technologies which I am 🤔 about adding to a product but 🤷♂️ if someone has already gone through the process of setting them up and getting the developer experience right: React, Docker, ELK, (probably others)
A thing people don’t like is hearing that a foundational component of their project is mathematically impossible. Corollary: never tell people about the halting problem.
Programming languages > frameworks > libraries > domain languages > domain modeling
(Things on the left are higher leverage than things on the right. Things on the right are easier to build than things on the left.)
In the brief moment when I start a new application, I work from left to right. The rest of the time, I’m working right to left.
It’s easy to learn languages, frameworks, and libraries in the abstract. It’s harder, for me, to find domains to model and build languages for outside of teamwork/professional contexts.
I continue to suspect that developers are undervaluing the ratio of leverage to development effort of frameworks.
Markets Are Eating The World. A non-obnoxious meditation on how blockchains could reduce coordination costs and makes large, corporate-like entities less necessary in the same way division of labor and technology have in the past.
Why are you building this?
At some point in what feels like the very distant past, I bought The Shape of Design by Frank Chimero. For six years, apparently, I’ve flipped past it on the way to reading other things. For some of that time, I was convinced I’d already read it. I was wrong, I just started reading it, and I’m super glad I did.
It opens with this bit of foreword, which struck me right in the “these are my people” feels:
Frank Chimero and I came together over a shared commitment to jazz. But not only exchanges of music. We emulated the form. He would write a blog post. I would respond. I would improvise one of his hunches. He would iterate one of my posts. A call-and-response approach to a developing friendship.
From there, it’s continued to impress. The illustrations before each chapter are delightful, the chapters are short and punchy, and the ideas are as useful to doing computer programs as they are to doing design.
The first idea in the book has taken up residence in my brain and I don’t want to let it go. It is, simple enough, that we should ask “how and why?” are we building this thing.
The “how” is often easy enough and the proverbial cart before the horse. We’re building a design system, we’re using Rails or React or whatever’s hot right now, or we’re doing XP with a little bit of Kanban and a dab of Lean methodology. The thing is, in the end, few of us will say “Oh, they built this with a design system, React, and lean methodology. Phew! I wasn’t going to use it otherwise.”
The answer to “why” is more likely to generate a satisfying response. We build things to learn, because they don’t exist and we want it to exist, because what exists doesn’t satisfy us, because people need it, because it brings joy to those who would use it, etc. Answering why motivates our craft.
Working backwards from “why” something should exist to “how” it should come to exist makes the difference between boring blandness and purposeful clarity.
Little (Rust) learning victories
I’m attempting to learn Rust. And really make it stick this time around. A lot of the “making it stick” part is making lists and having the discipline to stick with crossing items off them!
A smaller part is figuring out how I can notch very small victories no matter how much progress I make. This is crucial because I’ve got about a half an hour each morning to work on this!
My current favorite sort of small victory is to write up what I’ve learned if it doesn’t seem like I’m going to get far enough to commit new code behavior. This happens a fair bit when you’re working with a type checker after years of using a very implicit language.
So far I’ve written up what I’ve learned about the web frameworks Nickel and Actix so far.
The motivation for these little chunks of progress are the learning journals Brent Simmons has published over the years.
Pardon the dust, learning in progress
I’m trying a few things while I learn how ray-tracers work:
- learning Rust and graphics programming
- collecting my thoughts and discoveries in the repo, aka blogging
- doing it all in public, rather than a private repo
- tackling very math-y programming and domain problems, despite my lack of acumen in the area
Brought to you by: more folks should do blogging-like things, even if it’s not entirely on their own platform or using blog-software and more veteran programmers should be naive and not know everything in public.
It’s true that Twitter took some air out of blogging. I suspect it’s also true that they formed a positive feedback loop when they overlapped. Longer-form writing informed tweets, tweets responded to or inspired longer-form writing. We can have our tweets and eat blogs too!
Listening to a DJ live set and it opens with the whitest, most English version of a 90’s hip-hop sketch I’ve ever heard. This person learned the exactly wrong lesson of possibly every album after 3 Feet High and Rising.
Gil! Scott! Heron! man crush on LCD Soundsystem intensifies itunes.apple.com/us/album/…
Why blogs are still lovely, part fourteen: shawnblanc.net/2019/01/s…
Corollaries to “new languages won’t achieve career-sustaining critical mass": 1) frameworks become the important point of leverage 2) framework/language harmony or outright integration ala Elm or Erlang become even more important.
Long bet: Java, PHP, JavaScript, Python, Ruby, and C# will be the last languages that achieve a critical mass such that they can sustain developers through their whole career. From here on out, it’s a melting pot of framework and technology choices.