diff --git a/content/journal/dispatch-6-august-2023/index.md b/content/journal/dispatch-6-august-2023/index.md
index 9fb62ca..aaa2525 100644
--- a/content/journal/dispatch-6-august-2023/index.md
+++ b/content/journal/dispatch-6-august-2023/index.md
@@ -1,71 +1,86 @@
---
title: "Dispatch #6 (August 2023)"
-date: 2023-08-05T12:00:00-04:00
+date: 2023-08-06T12:00:00-04:00
draft: false
tags:
- dispatch
+references:
+- title: "Why I don't use Copilot"
+ url: https://inkdroid.org/2023/06/04/copilot/
+ date: 2023-08-07T02:20:18Z
+ file: inkdroid-org-belior.txt
+- title: "Phase change"
+ url: https://www.robinsloan.com/lab/phase-change/
+ date: 2023-08-07T02:20:18Z
+ file: www-robinsloan-com-sbm0vr.txt
+- title: "The looming demise of the 10x developer: Why an era of enthusiast programmers is coming to an end"
+ url: https://blog.testdouble.com/posts/2023-07-12-the-looming-demise-of-the-10x-developer/
+ date: 2023-08-07T02:20:19Z
+ file: blog-testdouble-com-krzanb.txt
+- title: "Daily notes for 2023-07-17 | Yes, Mike will do."
+ url: https://mike.puddingtime.org/posts/2023-07-17-daily-notes/#notes-on-conflict
+ date: 2023-08-07T02:20:20Z
+ file: mike-puddingtime-org-svf0ua.txt
---
-Some thoughts here...
+Nice to have a quieter month, though we still managed to spend a weekend at Lake Norman and took Nev on her first camping trip at [Carolina Hemlocks Recreation Area][1]. We also had a nice visit from my folks to celebrate my mom's birthday.
-* Lake
-* Visit from my parents
-* Camping @ [Carolina Hemlocks Recreation Area][1]
+
+ {{}}
+ {{}}
+
+
+Tech-wise, I switched from Vim to [Helix][2], which I've detailed [over here][3]. I was also able to work through a whole bunch of the [Go track on Exercism][4] -- it's a good way to get a handle on the basics of a language, but doesn't cover using third-party packages, organizing large codebases, etc. To get that kind of experience, I'm going to try my hand at an app for fantasy sports drafts -- take a set of player projections and a scoring formula, and output a UI I can use during a live online draft. I've been doing this with spreadsheets for years, and it's pretty cumbersome. I'm going to use TOML for configuration, SQLite for data persistence, and [Bubble Tea][5] for the UI itself. We'll see how it goes!
+
+I've signed up for the [Bull City Race Fest][6] half-marathon in October. Training starts ... tomorrow. I'm going to try to mix in some better eating habits + cross-training this time.
[1]: https://www.recreation.gov/camping/campgrounds/233954
-
-* Go
- * Did Exercisms
- * Fantasy draft TUI app in Go
-* Did a bike ride
-* Am I running a half-marathon this fall?
- * **YES** -- [Bull City Race Fest][2]
-
-[2]: https://capstoneraces.com/bull-city-race-fest/
+[2]: https://helix-editor.com/
+[3]: /journal/a-month-with-helix
+[4]: https://exercism.org/tracks/go
+[5]: https://github.com/charmbracelet/bubbletea
+[6]: https://capstoneraces.com/bull-city-race-fest/
This month:
-* Adventure:
-* Project: Fantasy draft TUI app
- * [Bubble Tea][3]
-* Skill:
-
-[3]: https://github.com/charmbracelet/bubbletea
+* Adventure: spending a weekend at Virginia's Eastern Shore with some childhood friends and a week at the beach with my family
+* Project: build a fantasy draft TUI app in Go using [Bubble Tea][5]
+* Skill: learn how to organize a larger Go codebase as part of ☝️
Reading:
-* Fiction: [_Title_][4], Author
-* Non-fiction: [_The Creative Programmer_][5], [Wouter Groeneveld][6]
+* Fiction: [_Tress of the Emerald Sea_][7], Brandon Sanderson
+* Non-fiction: [_The Creative Programmer_][8], [Wouter Groeneveld][9]
-[4]: https://bookshop.org/
-[5]: https://www.manning.com/books/the-creative-programmer
-[6]: https://brainbaking.com/
+[7]: https://www.brandonsanderson.com/standalones-cosmere/#TRESS
+[8]: https://www.manning.com/books/the-creative-programmer
+[9]: https://brainbaking.com/
Links:
-* [Why I don't use Copilot][7]
+* [Why I don't use Copilot][10]
> I enjoy programming because it’s about reasoning, thinking, models, concepts, expression, communication, ethics, reading, learning, making, and process. It’s an art and a practice that is best done with other people.
>
> Increasingly I think it’s imperative for programming to be done more slowly, more deliberatively, and as part of more conversations with more people. The furious automation of everything is eating the world.
-* [Phase change][8]
+* [Phase change][11]
> *What could I do with a universal function — a tool for turning just about any X into just about any Y with plain language instructions?*
>
> I don’t pose that question with any sense of wide-eyed expectation; a reasonable answer might be, *eh, nothing much*. Not everything in the world depends on the transformation of symbols. But I think that IS the question, and I think it takes some legitimate work, some strenuous imagination, to push yourself to believe it really will be “just about any X” into “just about any Y”.
-* [The looming demise of the 10x developer: Why an era of enthusiast programmers is coming to an end][9]
+* [The looming demise of the 10x developer: Why an era of enthusiast programmers is coming to an end][12]
> That is to say, I’ve come to believe the era typified by the enthusiast programmer—autodidactic, obsessive, and antisocial—is drawing to a close.
-* [Notes on Conflict | Yes, Mike will do.][10]
+* [Notes on Conflict | Yes, Mike will do.][13]
> Over time I shifted on the matter a little, but when I look back on it I realize I wasn’t really evolving my attitude toward conflict, I was just evolving my response to its existence, while still believing that being in a state of conflict is a problem. I just got better at keeping my blood pressure low and gritting through it. I think I was looking at conflict as a thing that you have to acknowledge exists, but that you need to get through as quickly as possible, because it’s a bad place to be.
-[7]: https://inkdroid.org/2023/06/04/copilot/
-[8]: https://www.robinsloan.com/lab/phase-change/
-[9]: https://blog.testdouble.com/posts/2023-07-12-the-looming-demise-of-the-10x-developer/
-[10]: https://mike.puddingtime.org/posts/2023-07-17-daily-notes/#notes-on-conflict
+[10]: https://inkdroid.org/2023/06/04/copilot/
+[11]: https://www.robinsloan.com/lab/phase-change/
+[12]: https://blog.testdouble.com/posts/2023-07-12-the-looming-demise-of-the-10x-developer/
+[13]: https://mike.puddingtime.org/posts/2023-07-17-daily-notes/#notes-on-conflict
diff --git a/static/archive/blog-testdouble-com-krzanb.txt b/static/archive/blog-testdouble-com-krzanb.txt
new file mode 100644
index 0000000..b825181
--- /dev/null
+++ b/static/archive/blog-testdouble-com-krzanb.txt
@@ -0,0 +1,641 @@
+ [1]Test Double The Test Double logo
+
+ Menu
+
+ (BUTTON) Menu Menu An icon that displays an illustration of a website
+ menu
+ * [2]Home
+ * [3]Agency
+ * [4]Services
+ * [5]Careers
+ * [6]Blog
+ * [7]Contact
+
+ [8]Blog [9]Posts
+
+The looming demise of the 10x developer
+
+Why an era of enthusiast programmers is coming to an end
+
+ An icon of a clock Publish Date
+ July 12, 2023
+
+ An icon of a human figure Authors
+ [10]Justin Searls
+
+ I’ve recently been telling anyone who will listen that I am excited to
+ be on the precipice of using [11]Sorbet to write a type-checked edition
+ of [12]Mocktail that has the potential to unlock productivity workflows
+ never before possible in Ruby.
+
+ I’m not there yet.
+
+ I don’t want to say it’s been a “quagmire,” but I’m over [13]150
+ commits in, and there’s a lot left to button up before release. It’s
+ been a real challenge. Learning Sorbet at all takes a good chunk of
+ time, to be sure. I’ve also hit a number of thorny edge cases and
+ elusive bugs along the way (both in the type system itself and that the
+ type system exposed in my code). And, like usual, I’m trying to do
+ something that’s never quite been done before, so I’m constantly
+ oscillating between feelings of nervous excitement and fear that I’m
+ attempting the impossible. (Though it’s been made far more possible
+ thanks to the generous assistance of [14]Ufuk Kayserilioglu, [15]Kevin
+ Newton, and [16]Jake Zimmerman!)
+
+ Beyond this, any specifics I might share about my current quest are so
+ banal as to not be worth your time. (If you somehow find this
+ interesting, please [17]email me so I might feel less alone in this
+ world.) That said, there is something generally interesting here that
+ programmers don’t often talk about. And that’s the deeper question: why
+ do I keep doing this to myself?
+
+[18]What makes me “special”
+
+ I am an enthusiast programmer.
+
+ I stumble on a problem like this one and I stay up late every night
+ until I find the solution. I wake up early each morning with new ideas
+ of things to try. I don’t take enough breaks, but when I do, they’re
+ tactically-designed to exploit my brain’s asynchronous processor to
+ generate solutions for whatever I’m currently stuck on. I irresponsibly
+ defer responsibilities from other areas of my life. Eventually, I
+ realize I’m only at the 20% mark and that a pattern is repeating where
+ a month or more of my life is about to disappear from the calendar.
+ Towards the end, I find myself rushing to find the maze’s exit because
+ my desire to unlock the puzzle’s final secret starts to be overtaken by
+ the shame of all the other balls I’m dropping. It’s excruciating as I
+ approach that inflection point—as intense as an overbearing manager’s
+ “do or die” deadlines ever were, except in this case the pressure I
+ feel is entirely self-imposed.
+
+ And then, at some uneventful moment at 4 pm on a Sunday, it’s done.
+
+ Sometimes people care about what I made. Usually they don’t. Often,
+ even I don’t.
+
+ I give myself enough time to clear my inbox, tidy the house, and shave.
+ Then I move onto the next Sisyphean task I’ve laid before myself.
+
+ This describes how I’ve lived my life since I was 13 years old, with
+ few exceptions. And let me tell you, it’s very difficult to juggle a
+ healthy personal life and a sustainable work life when you’re
+ simultaneously engulfed in an endless series of side quests to will
+ every creative curiosity into existence.
+
+ When I was a consultant at [19]Crowe, there was one year I billed
+ clients for nearly 2100 hours, which averages out to more than 40 hours
+ per week every week of the year with zero days off. And that’s not
+ counting travel time. Or the half-dozen hours of weekly administrative
+ work that wasn’t considered billable. Nevertheless, I found time in my
+ nights and weekends that year to build an app with Apple’s buggy,
+ mostly-undocumented initial iPhone SDK. The app was a native client to
+ [20]vBulletin web forums, allowing users to browse threads and compose
+ replies. Despite knowing nothing about any of the underlying
+ technologies, I obsessively polished the app to perfection. Did I make
+ time to sleep? I don’t remember. The whole year’s a blur.
+
+ All so that Apple could reject my app because users might post swear
+ words or dirty pictures. Oh, well. Onto the next thing.
+
+ I don’t know what word best describes my behavior above without
+ inflecting significant value judgment. Perfectionist? Obsessive?
+ Passionate? Whatever we call this compulsion, it’s hardly an unalloyed
+ good and it comes with its share of downsides. Nevertheless, it’s one
+ of a number of idiosyncrasies and character flaws I’ve decided to lean
+ into and find productive outlets for rather than attempting to repress
+ or rewire.
+
+ Other examples:
+ * I ruminate endlessly under stress, so I wrest back some control by
+ manufacturing stress responses over things I’m building to trick my
+ brain into ruminating on work that’s useful to me. This both
+ overrides the unhelpful, irrational worries that surround me every
+ day and unlocks a “second shift” where I accomplish almost as much
+ away from the keyboard as in front of it
+ * I’m a terrible listener and struggle with auditory processing,
+ especially in groups and loud environments. (One reason I talk so
+ much is that it’s always felt safer to drive the conversation than
+ risk mishearing and offending someone.) Parsing others’ sentences
+ often feels like I’m filling in the blanks to make sense of them,
+ like playing a game of [21]Mad Libs. Over the years, I’ve
+ redirected this into a source of creativity and humor. Most of my
+ puns and wordplay are happy accidents as I fill in the gaps in my
+ own listening comprehension. Some of my most creative ideas are
+ things I swear I heard someone say when it turns out they were
+ actually talking about something else
+ * I’m a really bad learner—disinterested, distractible, and
+ disagreeable. I’ve never enjoyed learning and generally avoid it,
+ especially learning for its own sake. At the slightest discomfort
+ when struggling to understand something, I’ll grasp for any
+ distraction that might offer me a momentary escape. When I do
+ manage to get traction, I inevitably find myself disagreeing with
+ the premise or subversively trying to prove the authors wrong. The
+ upshot is that once I actually do learn something, I know it cold.
+ It means I will have scoured every nook and climbed out of every
+ pitfall. Professionally, this apparent weakness has turned out to
+ be a superpower. Learning everything the hard way has made me a
+ natural consultant and mentor. Because I’ve already explored all
+ the wrong paths, I often know someone is stuck before they do,
+ understand what threw them off course, and show them how to get
+ back on track
+
+ The reason I landed on this topic today is not that any of the above
+ makes me special, it’s actually that contradictions like these—whatever
+ their origin—are so typical among programmers born before 1990 that
+ they’re entirely mundane.
+
+[22]An aberrant generation of programmers
+
+ Squint and everything I just said about myself could have described a
+ character from [23]The Big Bang Theory or [24]Silicon Valley. I’m at
+ peace with the fact that on my best days, I’m an overplayed, abrasive
+ character trope come to life. For decades, we’ve associated a slew of
+ mostly-negative traits like these with programmers as if the linkage is
+ inherent and inevitable. I’ve always thought that stereotype was
+ arbitrary—anybody can learn programming and be great at it—but now I’m
+ starting to think it’s a product of our times as well.
+
+ That is to say, I’ve come to believe the era typified by the enthusiast
+ programmer—autodidactic, obsessive, and antisocial—is drawing to a
+ close.
+
+ Why do I think that? Because there was a specific, generational moment
+ that attracted a bunch of people like me into the software industry. It
+ occurred during the brief window between home computers becoming widely
+ available and their becoming sealed airtight by platform holders. For a
+ fleeting moment, computers were simultaneously accessible and scrutable
+ during a necessary but temporary stage in the maturation of information
+ technology. Before they were rendered irreducibly complex as consumer
+ devices, merely using a computer required figuring out a lot about how
+ it worked. And coming of age with an understanding how computers worked
+ made programming them far more approachable. And thanks to cosmic
+ coincidence and the marketing teams of companies like RadioShack,
+ society unwittingly handed a generation of social mobility to [25]the
+ boys of upper-middle-class families in the US who felt more comfortable
+ at home with their computer than outside engaging socially with their
+ peers. I was definitely one of those awkward, anxious kids and a whole
+ lot of the programmers I’ve met along the way were too.
+
+ But one reason to believe that programmers don’t have to be like this
+ is that programmers weren’t always like this. I remember asking a
+ computer science professor in 2003 about our school’s gender disparity
+ (we only had a single woman in my class, and she later switched
+ majors). He recounted that before 1990 and the advent of hacker and
+ gamer subcultures, my college touted robust majorities of women in
+ computer science. (Nationally, women’s enrollment in CS doubled in a
+ decade, [26]peaking at 37.1% nationally in 1984 before dropping
+ precipitously.)
+
+ And one reason to believe programmers won’t always be this way is that
+ there’s plenty of evidence that the next generation of professional
+ programmers is no longer dominated by enthusiasts. People becoming
+ software developers today look markedly different than those who came
+ before. (Sadly, I wish I could say I’m referring to the success of
+ movements to increase representation from traditionally marginalized
+ groups—tech is still dramatically over-indexed on white dudes who
+ enjoyed affluent upbringings.) I’m just pointing to all the money
+ sloshing around here: it catapulted programming from a firmly middle
+ class job that appealed to people who really loved computers into a
+ comfortably upper-middle class profession that attracts anyone who
+ wants to secure their financial future. Ask anyone who switched careers
+ in the last decade how many times someone suggested they “learn to
+ code.” Countless people are entering the industry simply because
+ programming is a relatively secure, well-paying profession. (And
+ there’s nothing wrong with that!)
+
+[27]Inter-generational conflict is brewing
+
+ I’m not sure if anyone has ever said “OK boomer” to my parents, but I
+ can imagine it wouldn’t feel awesome to hear.
+
+ Nor do I know whether anyone will coin a term to dismiss my generation,
+ but I have faith that there’s enough societal exasperation out there
+ for someone on TikTok to come up with something snappy. A lot of people
+ in my professional cohort still see themselves as social outcasts who
+ grew up in front of a CRT in their parents’ basements, but I suspect
+ the next generation sees a homogenous monolith of 40-somethings wearing
+ hoodies and sandals (with socks!) that lucked their way into capturing
+ control of the software industry just as it settled into a state of
+ economic maturity.
+
+ Sit with this distinction for a while, and you might start to see these
+ old-hat programmers as belonging to an Enthusiast Generation, one
+ that—due to its unique initial circumstances—is unlikely to be
+ replicated. Once I introduced the word “generation” to my thinking, it
+ became easier to make sense of many contentious, unresolved issues in
+ tech that flared up over the past decade by looking at them through the
+ lens of intergenerational conflict. And just like any discussion of
+ generations, it’s important to caveat that there are no firm boundary
+ lines, that exceptions are plentiful, and that many observations will
+ be isolated to a single locale and culture (the U.S. in this case,
+ maybe Canada?). The only thing that bucketing people into generations
+ can do for us is provide a new way to look at how a population may be
+ changing, thanks to a big enough time-step to perceive the accumulation
+ of decades of gradual change.
+
+ To illustrate, I’ll highlight three high-profile conflicts that make a
+ different kind of sense when viewed as a generational shift.
+
+[28]Passion
+
+ I remember about 8 years ago, people [29]got [30]passionate [31]about
+ [32]the [33]word [34]passion.
+
+ This rubbed me the wrong way at first. Then again, everything does.
+
+ I remember thinking, “banning the word ‘passion’ will just lead people
+ to pick others like ‘self-driven’, ‘highly-motivated’, and
+ ‘ambitious’.” I remember asking, “are we supposed to screen out
+ candidates for whom programming is a hobby outside work?” What I don’t
+ remember was pondering whether this was an indication that the times
+ were changing.
+
+ When I entered the industry, my salary was lower than it would’ve been
+ if I’d gone into accounting, or become an actuary, or majored in civil
+ engineering—myself and most of the people around me did get into
+ software because we were passionate about it. Reading tweets and
+ thinkpieces that suggested “passion” was a four-letter word felt like a
+ personal affront, so I responded defensively.
+
+ What I wasn’t thinking about was what it must have felt like for
+ everyone who entered the industry expecting their job to be a job but
+ who found themselves managed by people from my generation who didn’t
+ leave them room to have a life outside work. Maybe everyone else on the
+ team worked overtime without being asked. Maybe taking “too much”
+ supposedly “unlimited” time off would foreclose any chance for a
+ promotion. Maybe building rapport at lunch required holding evolved
+ opinions on Emacs vs. Vim, or mechanical key switches, or whatever was
+ on the front page of Hacker News. That sounds like a pretty miserable
+ existence, especially if programming isn’t what gets you out of bed in
+ the morning.
+
+ If you allow for the possibility we’re undergoing a generational
+ change, maybe this debate over “passion” is evidence that the
+ assumption that most programmers will always be passionate about
+ programming was mistaken and counter-productive.
+
+[35]Craftsmanship
+
+ This brings another contentious word to mind: “craftsmanship.” Its
+ origin, as I witnessed it, was a reaction to the watering down of the
+ technical aspects of the agile software movement in the late 2000s in
+ favor of more lucrative soft-skills training and consulting services.
+ In case you missed it, most of the craftsmanship meme could be summed
+ up as a Slow Code movement. There was a lot of talk about measuring
+ twice and cutting once, establishing apprenticeship programs to train
+ new programmers, and a million ways to leverage automated tests for
+ purposes other than testing things.
+
+ I was an active participant in this community, speaking at the
+ [36]conference several times, putting [37]my name on the manifesto, and
+ generally exhorting anyone who would listen to please make their
+ software less terrible.
+
+ But looking back, the craftsmanship movement wasn’t only about
+ rekindling the tremendous engineering insights of agile methods like
+ [38]Extreme Programming, it was also a response to a rapid influx of a
+ generation of programmers who didn’t care about code quality the same
+ way we did. There was a sense that serious programmers were under
+ threat and hopelessly outnumbered by unserious ones. That if your team
+ didn’t get more disciplined about what you allow in your codebase,
+ you’d find yourself mired in a maze of complexity, beholden to epochal
+ build times, and left holding the bag with yet another legacy system.
+
+ Thinking about this point of tension as another manifestation of the
+ generational shift we’re experiencing, it’s easy to spot the problem:
+ “what you allow in your codebase” is a wee bit too easy to conflate
+ with “who you allow in your codebase.”
+
+ Shibboleths like “test-driven design” were so numerous that, to
+ outsiders, even perfunctory conversations were riddled with rhetorical
+ land mines. The emphasis on apprenticeship also carried assumptions
+ nobody seriously grappled with: that it implied “one true path” to
+ programming, that somebody (us) had uniquely figured it out, and that
+ the only way to learn it was to imitate the people who came before you.
+ I watched more than one conference talk advocating for
+ professionalizing software like any other trade by licensing
+ programmers just like we do plumbers, electricians, and [39]Canadian
+ engineers. Everyone’s intention was to prevent people from writing bad
+ software, but some of the movement’s prescriptions would have prevented
+ many people from writing software at all.
+
+[40]10x Developers
+
+ Before you say anything, I know [41]you [42]probably [43]already
+ [44]have [45]an [46]opinion [47]on [48]the [49]idea of a “10x”
+ developer. If you aren’t familiar, the term refers to
+ debatably-mythical programmers whose output is worth that of ten other
+ programmers. What aspects of that output? Which ten other programmers?
+ Unclear.
+
+ The concept behind the “10x” term predates either of the generations of
+ programmers being discussed here. It seems to have originated in
+ [50]this (flimsy) 1968 study that among experienced programmers, the
+ best were ten times more productive than the worst (as opposed to the
+ average). We remember it because it was referenced in the late Fred
+ Brooks’ seminal [51]Mythical Man-Month.
+
+ That some people are better at their jobs than others is (usually)
+ uncontroversial. At least, it was, until it bubbled up in The Discourse
+ during the 2010s as a flashpoint over who the industry chooses to
+ valorize, often sparked by tweets from people affiliated with venture
+ capital and advocating that founders should strive to “only hire 10x
+ developers.”
+
+ In response, many people who reasonably identified this framing as
+ unproductive chose to pick a weird fight by claiming that 10x
+ developers don’t exist instead. This invited a lot of
+ counter-criticism, as I think most of us can dream up examples of
+ people whose work is 1/10th as valuable as their own. From there, the
+ conversation shifted to counter-counter-critiques enumerating the
+ adverse knock-on effects of adding a toxic actor to a team, no matter
+ how much of a ninja/rockstar they are at coding.
+
+ And it was here that the conversation settled into a stalemate, with
+ clear battle lines dividing the two camps. On one side were proponents
+ who believed a lot of well-compensated programmers aren’t very good,
+ but that a few programmers are so good that the value they generate far
+ exceeds the range of a typical payscale (which was why Google used to
+ brag that they “[52]pay unfairly”). On the other side were critics who
+ were more than happy to project every negative stereotype about
+ programmers onto these supposedly hyper-productive ones, suggesting a
+ 10x developer’s easy-to-measure output often came with hard-to-measure
+ organizational and technical costs.
+
+ But now, looking back, this debate would have gone a lot differently if
+ we’d considered it through the valence of inter-generational conflict.
+
+ I’ll come clean: do I believe some programmers are at least an order of
+ magnitude better at programming than others? In my experience … yes.
+ I’ve worked with programmers who routinely solve problems in minutes
+ after I’ve wasted days or weeks on them. I’ve witnessed a programmer
+ singlehandedly build something in a day that an entire team struggled
+ to deliver in two weeks—without any of the catastrophic antisocial,
+ unsustainable downsides one might imagine. I’ve honestly seen more
+ socially corrosive behavior from the other end of the productivity
+ spectrum, because programmers who spin their wheels and make zero
+ forward progress for days, weeks, or months will inevitably scramble
+ for a way to save face.
+
+ It may be uncomfortable to admit, but it’s not altogether unreasonable
+ to speculate that enthusiast programmers may, in aggregate, outperform
+ professional programmers who hang up their keyboard at the end of each
+ shift. In my experience, these traits differentiate the former from the
+ latter:
+ * Tireless: spending more time practicing programming—not under
+ coercion to work long hours, but being intrinsically motivated to
+ do so—will generally make someone a better programmer
+ * Tenacious: chasing down answers with limitless curiosity and
+ relentless, no-holds-barred tenacity—whether or not it’s in their
+ job description to spelunk open source stack traces or debug other
+ teams’ code—will yield better information and faster progress
+ * Thorough: priding oneself on the quality of one’s work and pursuing
+ excellence in the (brace for it) craft—not falling victim to
+ perfectionism, but cutting the right corners when necessary—will
+ produce better-working software that’s easier to maintain
+
+ In the context of this generational rift, all three of the above are
+ exemplified by (but by no means exclusively limited to) us last-gen
+ models: the individual that programs in their spare time, obsessively
+ refuses to let a hard problem go, and is personally invested in the
+ quality of their work product.
+
+ I can’t imagine this dynamic feels awesome for members of the new
+ generation who don’t want to spend more than 40 hours a week at their
+ computer, or who have significant family commitments, or who aren’t
+ inclined to asynchronously ponder refactoring techniques as they run
+ errands. Will they be forever outpaced by more enthusiastic colleagues
+ for whom “programmer” is an all-encompassing identity as well a career?
+ I don’t know.
+
+ It’s an uncomfortable conversation because it’s an uncomfortable
+ reality.
+
+[53]What do we do with this?
+
+ The power of an analogy lies in what it empowers people to do.
+ Envisioning programmers as belonging to discrete generations who are
+ ushering in a dramatic transition in the industry can equip us to
+ identify the common threads between many of the challenges we’re
+ currently facing. It may even enable us to predict and plan for
+ inevitable difficulties in the future, as more members of the earlier
+ generation age out.
+
+ Suppose you’ve read this far and you can buy both these arguments:
+ 1. The next generation of programmers are less likely to be motivated
+ by a love of programming than the previous generation and may
+ differ in profound ways as a result
+ 2. Software, as an industry, has structurally organized itself around
+ the assumption programmers will continue to resemble members of the
+ outgoing generation
+
+ If so, then you can probably imagine there will be a lot of problems to
+ be solved here. The hot-button issues we revisited above are already
+ known, even if we failed to put our collective finger on a common cause
+ at the time. It’s likely that countless more challenges lie beneath the
+ surface, waiting for the spark that causes them to boil over. It’s up
+ to us whether we put in the work to uncover and address these problems
+ proactively.
+
+ Here are a few examples of questions I find myself asking after sitting
+ with this for a few days:
+ * The new generation is more likely to expect structure and support
+ from human resources and management, whereas the previous
+ generation is more likely to find active management (e.g. career
+ pathing, coaching, goal-setting) actually saps their autonomy and
+ intrinsic motivation. Can organizations effectively cater to the
+ needs of both groups?
+ * It’s an open secret that the industry has no idea how to teach
+ people to program. Computer Science degrees famously don’t prepare
+ programmers for the job of programming, which has always been left
+ as an exercise to the student to figure out on their own time. If
+ the industry is going to outlive us enthusiast programmers, will it
+ adopt a sustainable approach to educating the next generation that
+ doesn’t require people to teach themselves everything?
+ * Betting your business on a limitless supply of self-starting,
+ self-sufficient, self-disciplined candidates seems a lot like
+ investing in the long-term prospects of fossil fuel extraction. How
+ will companies that built their cultures around enthusiast
+ programmers adjust to a generation needing more direction, more
+ support, and more accountability?
+
+ All we know for sure is that time keeps marching forward and change is
+ a constant, so planning for a future that looks different than the past
+ is usually time well spent.
+
+ What challenges do you see in this generational transition? I’d love to
+ [54]hear from you! If you enjoyed this piece and want to keep up with
+ what myself and the other agents are up to, you should check out our
+ [55]monthly newsletter.
+
+[56]Justin Searls
+
+ An icon of a human figure Status
+ Double Agent
+
+ An icon of a hash sign Code Name
+ Agent 002
+
+ An icon of a map marker Location
+ Orlando, FL
+
+ [57]Twitter [58]Mastodon [59]Github [60]LinkedIn [61]Website
+
+Related posts:
+
+[62]How to tell if AI threatens YOUR job
+
+ Can ChatGPT help do your job? If so, how can you be sure AI won't
+ eventually replace you? Spot whether your job is at risk and what you
+ can do about it.
+
+ An icon of a clock Publish Date
+ March 14, 2023
+
+ An icon of a human figure Authors
+ [63]Justin Searls
+
+ An icon of a paper organzier Categories
+ [64]Industry
+ [65]Career
+
+[66]Never Staff to the Peak
+
+ For a decade, engineering leaders were taught to solve every problem
+ with more full-time hires. There was always a better solution. Are you
+ ready for it?
+
+ An icon of a clock Publish Date
+ April 3, 2023
+
+ An icon of a human figure Authors
+ [67]Justin Searls
+
+ An icon of a paper organzier Categories
+ [68]Industry
+ [69]Leadership
+
+[70]How my experience as an engineer made me a better recruiter
+
+ How similar are engineers and recruiters? Turns out a lot. A developer
+ turned recruiter adapted from writing code to recruit those who write
+ code.
+
+ An icon of a clock Publish Date
+ March 20, 2023
+
+ An icon of a human figure Authors
+ [71]Colleen Leonard
+
+ An icon of a paper organzier Categories
+ [72]Recruitment
+ [73]Community
+
+Looking for developers? Work with people who care about what you care about.
+
+We level up teams striving to ship great code.
+
+ [74]Let's talk
+
+ [75]Home [76]Agency [77]Services [78]Careers [79]Blog [80]Contact
+
+
+ [81]Mastodon [82]GitHub [83]LinkedIn [84]Twitter
+
+ [85]614.349.4279
+ [86]hello@testdouble.com
+ [87]Privacy Policy
+ Founded in Columbus, OH
+
+[88]Test Double
+
+References
+
+ 1. https://testdouble.com/
+ 2. https://testdouble.com/
+ 3. https://testdouble.com/agency
+ 4. https://testdouble.com/services
+ 5. https://testdouble.com/careers
+ 6. file:///
+ 7. https://testdouble.com/contact
+ 8. file:///
+ 9. file:///posts/
+ 10. file:///authors/justin-searls/
+ 11. https://sorbet.org/
+ 12. https://github.com/testdouble/mocktail
+ 13. https://github.com/testdouble/mocktail/pull/22
+ 14. https://github.com/paracycle
+ 15. https://github.com/kddnewton
+ 16. https://github.com/jez
+ 17. mailto:justin@testdouble.com
+ 18. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L12618-6018TMP.html#what-makes-me-special
+ 19. https://www.crowe.com/
+ 20. https://www.vbulletin.com/
+ 21. https://en.wikipedia.org/wiki/Mad_Libs
+ 22. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L12618-6018TMP.html#an-aberrant-generation-of-programmers
+ 23. https://en.wikipedia.org/wiki/The_Big_Bang_Theory
+ 24. https://en.wikipedia.org/wiki/Silicon_Valley_(TV_series)
+ 25. https://www.npr.org/transcripts/356944145
+ 26. https://nces.ed.gov/programs/digest/d12/tables/dt12_349.asp
+ 27. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L12618-6018TMP.html#inter-generational-conflict-is-brewing
+ 28. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L12618-6018TMP.html#passion
+ 29. https://starbreaker.org/blog/programmer-passion-considered-harmful/index.html
+ 30. https://www.hotjar.com/blog/the-passion-fallacy/
+ 31. https://web.archive.org/web/20160304021738/http://www.gamasutra.com/view/feature/6523/the_designers_notebook_passion_.php?print=1
+ 32. https://avdi.codes/the-moderately-enthusiastic-programmer/
+ 33. https://philippe.bourgau.net/is-there-any-room-for-the-not-passionate-developer/
+ 34. https://exceptionnotfound.net/passion-not-required-its-ok-to-only-program-for-a-paycheck/
+ 35. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L12618-6018TMP.html#craftsmanship
+ 36. https://scna.softwarecraftsmanship.org/
+ 37. http://manifesto.softwarecraftsmanship.org/
+ 38. https://en.wikipedia.org/wiki/Extreme_programming
+ 39. https://engineerscanada.ca/become-an-engineer/overview-of-licensing-process
+ 40. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L12618-6018TMP.html#10x-developers
+ 41. https://jasoncrawford.org/10x-engineers
+ 42. https://web.archive.org/web/20131205042721/https://medium.com/about-work/6aedba30ecfe
+ 43. https://networkingnerd.net/2019/07/18/i-was-a-10x-engineer-and-im-sorry/
+ 44. https://www.swarmia.com/blog/busting-the-10x-software-engineer-myth/
+ 45. https://erikbern.com/2016/01/08/i-believe-in-the-10x-engineer-but
+ 46. https://a16z.com/2014/07/30/the-happy-demise-of-the-10x-engineer/
+ 47. https://blog.kenforthewin.com/state-of-the-10x-programmer-in-2018/
+ 48. https://web.archive.org/web/20230326131816/https://payne.org/blog/the-myth-of-the-myth-of-the-10x-programmer/
+ 49. https://avichal.com/2011/12/16/focus-on-building-10x-teams-not-on-hiring-10x-developers/
+ 50. https://dl.acm.org/doi/10.1145/362851.362858
+ 51. https://en.wikipedia.org/wiki/The_Mythical_Man-Month
+ 52. https://www.inc.com/jeff-haden/why-google-quietly-uses-power-law-rule-to-pay-its-superstar-employees-unfairly.html
+ 53. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L12618-6018TMP.html#what-do-we-do-with-this
+ 54. mailto:justin@testdouble.com
+ 55. https://testdouble.com/newsletter
+ 56. file:///authors/justin-searls/
+ 57. https://twitter.com/searls
+ 58. https://mastodon.social/@searls
+ 59. https://github.com/searls
+ 60. https://linkedin.com/in/searls
+ 61. https://justin.searls.co/
+ 62. file:///posts/2023-03-14-how-to-tell-if-ai-threatens-your-job/
+ 63. file:///authors/justin-searls/
+ 64. file:///categories/industry
+ 65. file:///categories/career
+ 66. file:///posts/2023-04-03-never-staff-to-the-peak/
+ 67. file:///authors/justin-searls/
+ 68. file:///categories/industry
+ 69. file:///categories/leadership
+ 70. file:///posts/2023-03-20-how-my-experience-as-an-engineer-made-me-a-better-recruiter/
+ 71. file:///authors/colleen-leonard/
+ 72. file:///categories/recruitment
+ 73. file:///categories/community
+ 74. https://link.testdouble.com/blog-cta-sales
+ 75. https://testdouble.com/
+ 76. https://testdouble.com/agency
+ 77. https://testdouble.com/services
+ 78. https://testdouble.com/careers
+ 79. file:///
+ 80. https://testdouble.com/contact
+ 81. https://mastodon.social/@testdouble
+ 82. https://github.com/testdouble
+ 83. https://www.linkedin.com/company/testdouble
+ 84. https://twitter.com/testdouble
+ 85. tel:+16143494279
+ 86. mailto:hello@testdouble.com
+ 87. file://testdouble.com/privacy-policy
+ 88. file://testdouble.com/
diff --git a/static/archive/inkdroid-org-belior.txt b/static/archive/inkdroid-org-belior.txt
new file mode 100644
index 0000000..b50f55d
--- /dev/null
+++ b/static/archive/inkdroid-org-belior.txt
@@ -0,0 +1,165 @@
+ #[1]inkdroid
+
+ (BUTTON)
+ * [2]Home
+ * [3]About
+ * [4]Tags
+ * [5]Bookmarks
+ * [6]Photos
+ * [7]Podcasts
+ * [8]Music
+ * [9]Software
+ * [10]Mastodon
+ * [11]Talks
+ * [12]Web Archives
+ * [13]Feed
+ * [14]🎁
+
+Why I don't use Copilot
+
+ June 4, 2023
+ [15]programming [16]artificial-intelligence
+ __________________________________________________________________
+
+ TL;DR Don’t install Copilot. It rots your brain and destroys the
+ environment.
+ __________________________________________________________________
+
+ [rubber-duck.jpg] [17]A rubber duck in use by a developer to aid code
+ review
+
+ [18]GitHub Copilot is a technology that is designed to help you write
+ code, kind of like your partner in [19]pair programming. But, you know,
+ it’s not an actual person. It’s “A.I.”–whatever that means.
+
+ In principle this sounds like it might actually be a good thing right?
+ I know several people, who I respect, that use it as part of their
+ daily work. I’ve heard [20]smart people say AI coding assistants like
+ Copilot will democratize programming, by making it possible for more
+ people to write code, and automate the drudgery out of their lives. I’m
+ not convinced.
+
+ Here’s why I don’t use Copilot (or ChatGPT) to write code:
+ 1. Copilot’s suggestions are based on a corpus of open source code in
+ GitHub, but the suggestions do not mention where the code came
+ from, and what the license is. GitHub is stealing and selling
+ intellectual property.
+ 2. Copilot lets you write code faster. I don’t think more code is a
+ good thing. The more code there is, the more code there is to
+ maintain. Minimalism in features is usually a good thing too. Less
+ really is more.
+ 3. As more and more programmers use Copilot it creates conservativism
+ in languages and frameworks that prevents people from creating and
+ learning new ways of doing things. Collectively, we get even more
+ stuck in our ways and biases. Some of the biases encoded into LLMs
+ are things that we are actively trying to [21]change.
+ 4. Developers become dependent on Copilot for intellectual work.
+ Actually, maybe addicted is a better word here. The same could be
+ (and was) said about the effect of search engines on software
+ development work (e.g. Googling error messages). But the difference
+ is that search results need to be interpreted, and the resulting
+ web pages have important context that you often need to understand.
+ This is work that Copilot optimizes away and truncates our
+ knowledge in the process.
+ 5. Copilot costs money. It doesn’t cost tons of money (for a
+ professional person in the USA) but it could be significant for
+ some. Who does it privilege? Also, it could change (see point 4).
+ Remember who owns this thing.
+ 6. How much [22]energy does it take to run Copilot as millions of
+ developers outsource their intellectual work to its LLM
+ infrastructure? Is this massive centralization and enclosure really
+ progress in computing? Or is it a [23]step backwards as we try to
+ [24]reduce our energy use as a species?
+ 7. What does Copilot see of the code in your editor? Does it use your
+ code as context for the prompt? What does it store, and remember,
+ and give to others? Somebody has probably looked into this, but if
+ they have it is always up for revision. Just out of principle I
+ don’t want my editor sending my code somewhere else without me
+ intentionally doing it.
+ 8. Working with others who use Copilot makes my job harder, since they
+ sometimes don’t really understand the details of why the code is
+ written a particular way. Over time Copilot code can mix idioms,
+ styles and approaches, in ways that the developer doesn’t really
+ understand or even recognize. This makes maintenance harder.
+
+ As far as I can tell the only redeeming qualities of Copilot are:
+ 1. Copilot encourages you to articulate and describe a problem as
+ written prose before starting to write code. You don’t need Copilot
+ for this. Maybe keep a work journal or write a [25]design document?
+ Maybe use your issue tracker? Use [26]text to communicate with
+ other people.
+ 2. Copilot is more interactive than a [27]rubber duck. But, it turns
+ out Actual People are even more interactive and surprising. Reach
+ out to other professionals and make some friends. Go to workshops
+ and conferences.
+ 3. I could be convinced that Copilot has a useful place in the
+ [28]review of code rather than the first draft of code. It wouldn’t
+ be a replacement for review by people, but I believe it could
+ potentially help people do the review. I don’t think this exists
+ yet?
+ 4. Copilot makes me think critically about machine learning
+ technology, my profession and its place in the world.
+
+ Maybe my thinking on this will change. But I doubt it. I’m on the older
+ side for a software developer, and (hopefully) will retire some day.
+ Maybe people like me are on the way out, and writing code with Copilot
+ and ChatGPT is the future. Maybe programming has always been about
+ increasing layers of abstraction and this is just the next logical
+ layer. I really hope not.
+
+ I enjoy programming because it’s about reasoning, thinking, models,
+ concepts, expression, communication, ethics, reading, learning, making,
+ and process. It’s an art and a practice that is best done with other
+ people.
+
+ Increasingly I think it’s imperative for programming to be done more
+ slowly, more deliberatively, and as part of more conversations with
+ more people. The furious automation of everything is eating the world.
+
+ Programs need to run more efficiently. Programs need to be well
+ understood, by a more diverse and varied set of people. Programs need
+ to be robust and resilient. Programs need to be easier to change.
+
+ Can Copilot help with these [29]goals? I think the answer is no,
+ because it doesn’t actually understand anything, and more importantly,
+ it doesn’t promote understanding.
+ __________________________________________________________________
+
+ Update (2023-06-09): For another take on Copilot that uses this post as
+ a jumping off point see Vivek Haldar’s [30]Re: Why I don’t use Copilot.
+
+ Unless otherwise noted all the content here is licensed [31]CC-BY
+
+References
+
+ 1. https://inkdroid.org/feed.xml
+ 2. file:///
+ 3. file:///about/
+ 4. file:///tags/
+ 5. http://pinboard.in/u:edsu
+ 6. https://www.flickr.com/photos/inkdroid
+ 7. file:///podcasts/feed.opml
+ 8. https://bandcamp.com/edsu
+ 9. https://github.com/edsu
+ 10. https://social.coop/@edsu
+ 11. file:///talks/
+ 12. file:///web-archives/archives/
+ 13. file:///feed.xml
+ 14. https://bookshop.org/wishlists/d7c0224f5440df8d2c174ad2cc38b3fca1aa813f
+ 15. file:///tag/programming
+ 16. file:///tag/artificial-intelligence
+ 17. https://commons.wikimedia.org/wiki/File:Rubber_duck_assisting_with_debugging.jpg
+ 18. https://en.wikipedia.org/wiki/GitHub_Copilot
+ 19. https://en.wikipedia.org/wiki/Pair_programming
+ 20. https://changelog.com/podcast/534
+ 21. https://www.wired.com/story/tech-confronts-use-labels-master-slave/
+ 22. https://dl.acm.org/doi/pdf/10.1145/3442188.3445922
+ 23. https://www.washingtonpost.com/technology/2023/06/05/chatgpt-hidden-cost-gpu-compute/
+ 24. https://www.jasonhickel.org/less-is-more
+ 25. https://en.wikipedia.org/wiki/Software_design_description
+ 26. https://graydon2.dreamwidth.org/193447.html
+ 27. https://en.wikipedia.org/wiki/Rubber_duck_debugging
+ 28. https://en.wikipedia.org/wiki/Code_review
+ 29. https://permacomputing.net/
+ 30. https://vivekhaldar.com/articles/re--why-i-don-t-use-copilot/
+ 31. https://creativecommons.org/licenses/by/4.0/
diff --git a/static/archive/mike-puddingtime-org-svf0ua.txt b/static/archive/mike-puddingtime-org-svf0ua.txt
new file mode 100644
index 0000000..afbacde
--- /dev/null
+++ b/static/archive/mike-puddingtime-org-svf0ua.txt
@@ -0,0 +1,197 @@
+ [1]Yes, Mike will do.
+ (BUTTON)
+
+ * [2]About
+ * [3]Tags
+ * [4]Categories
+ * [5]Search
+ * [6]Feed
+
+ [7]Home » [8]Posts
+
+ Daily notes for 2023-07-17
+
+ July 17, 2023
+
+ Table of Contents
+ * [9]Notes on conflict
+ * [10]The INT650
+
+Notes on conflict[11]#
+
+ When my master and I were walking in the rain, he would say, “Do not
+ walk so fast, the rain is everywhere.”
+ —Shunryu Suzuki
+
+ For a very long time — too much of my life — I thought conflict was a
+ sign that there was a problem. I didn’t like disagreeing with people
+ about much of anything. I’m using “conflict” in a broad sense: Over
+ resources, points of view, vision, beliefs, tastes.
+
+ Over time I shifted on the matter a little, but when I look back on it
+ I realize I wasn’t really evolving my attitude toward conflict, I was
+ just evolving my response to its existence, while still believing that
+ being in a state of conflict is a problem. I just got better at keeping
+ my blood pressure low and gritting through it. I think I was looking at
+ conflict as a thing that you have to acknowledge exists, but that you
+ need to get through as quickly as possible, because it’s a bad place to
+ be.
+
+ That attitude created some problems:
+ * When you’re bad at being in conflict, you’re at a disadvantage with
+ people who are good at it and mean you harm; and you’re annoying
+ people who are good at it and mean you no harm.
+ * When you look at conflict as a thing to grit through and end
+ quickly it’s hard to maintain your integrity. (See above: The
+ people who don’t want what’s best for you (or the business, or the
+ world, or etc.) understand this, and the ones who are really good
+ at it and a little indifferent toward what’s best for you are
+ counting on you to do all the work to get out of conflict.)
+ * When you’d rather do anything than admit that you’re in a state of
+ conflict, you will eventually do something about your problem that
+ is less skillful for having waited than if you’d admitted it to
+ yourself (and whoever you’re in conflict with) sooner. Or, as one
+ of my past managers put it to me, “don’t be that guy who
+ hockey-sticks.” (I nodded then kind of hockey-sticked.)
+ * When you’re bad at being in conflict, and you’re willing to be set
+ aside your integrity or do other things to get out of it quickly,
+ you’ll eventually get tired of “losing” and figure out ways to
+ “win” that cause others to see you as, at best, baffling and
+ frustrating, and at worst Machiavellian and treacherous.
+
+ That, anyhow, is a rough categorization of my many hundreds of
+ mishandlings of conflict. Maybe the most interesting thing to me about
+ all those mishandlings is that over time I managed to convince myself
+ that failing to be in conflict well was a sign of virtue. Moral
+ sophistication. “Taking the high road.” “Not worth the stress.”
+ “Learning how to play the game.” “Protecting the team.”
+
+ Over the past few years, I’ve changed on the matter: On balance, I
+ definitely don’t think its existence is a sign there’s a problem. It’s
+ just a sign that there’s a conflict.
+
+ I still feel a little cautious about conflict when I don’t know the
+ person I’m in conflict with very well. Caution is useful, because
+ people who are bad at being in conflict but mean well — people who are
+ “good eggs” — can still sort of mess things up, because if I have to
+ bet on whether someone hates “losing” or just grinning and bearing it
+ more, my money is on them hating losing more. When things get to a
+ place where it feels existential to them, even good eggs can act sort
+ of rotten. So you have to take time and attend to the interaction so
+ they can be in conflict and feel safe about it.
+
+ I still think I have a responsibility to introduce the existence of
+ conflict with kindness, or receive the news that I’ve entered into a
+ state of conflict in a manner that invites a full airing. “Relaxed and
+ possibly delighted curiosity,” I suppose I’d call it, rather than a
+ furrowing of the brow and assurances that I want to restore harmony at
+ once. Because I don’t want to restore harmony at once. I want to
+ understand why we want different things, then figure out how we can
+ both behave with integrity while we sort that out.
+
+The INT650[12]#
+
+ I finally quit waffling on what to do with the Royal Enfield Himalayan.
+ I took it up to [13]Sabatino Moto in St. Johns and traded it in for
+ another Royal Enfield: An INT650 (“Interceptor” everywhere else in the
+ world, but not in North America where Honda owns the rights to the
+ name.)
+
+ It’s a pretty night and day difference. The Himalayan is a mountain
+ goat, and the INT650 is … something a little prettier and a little less
+ rough. I was never going to ride the Himalayan the way it was meant to
+ be ridden — fire roads, gravel, dirt — and I didn’t have the patience
+ for the very “work in progress” attitude Royal Enfield took toward it.
+ One thing you learn from all the Himalayan videos on YouTube is that
+ the people who love them best don’t mind fiddling, tweaking, and
+ wrenching. After reading hundreds of owners talk about their
+ experiences, I have come to realize I lost the factory QA lottery on
+ mine, and that engendered a lack of confidence in it that I never
+ recovered from.
+
+ Also turns out, I think, that I had a bad dealer:
+
+ The first RE dealer in the Portland area doesn’t really want to sell
+ them, and it really does not want to do anything other than the most
+ basic service. I think I’ve documented that elsewhere, so I won’t go
+ into it more here, but I’ll just offer the observation that RE’s
+ strategy of linking up with Harley dealers to build out its US
+ distribution network did its customers no favors.
+
+ The folks at Sabatino, on the other hand, seem to have a genuine
+ appreciation for the bikes, that extends all the way to acknowledging
+ that RE has some QA challenges. Sabatino addresses that by doing their
+ own QA when they uncrate a new bike. And they’re willing to talk about
+ the ups and downs of each model. My head was briefly turned by another
+ model, and I got a reasoned, balanced, discussion of why maybe that one
+ wouldn’t work for me.
+
+ They also offer test rides. I can name one dealership that grudgingly
+ made me sign a waiver and write a check for the full amount to test
+ ride a Grom for five laps around their parking lot, and they only did
+ that because it was a two-year-old model and they’d sold the newer one
+ they promised me out from under me. Sabatino made me do the waiver,
+ share my insurance information, and hand over my license, but then they
+ tossed me the keys and told me they’d see me when they saw me.
+
+ Anyhow, the test ride sold me. I’ve been through several configurations
+ of motorcycle and scooter since getting my motorcycle endorsement —
+ maxiscoots, normal scoots, mini-moto, cruiser, trail bike, dual-sport —
+ and none of them have been the thing I first imagined myself riding
+ when I finally decided to learn how to ride. Well, learn how to ride as
+ an adult, anyhow. The twin 650 runs and sounds nice, the bike handles
+ more comfortably than the Himalayan despite there being 40 pounds more
+ of it, and the super-simple analog speedo and tach are just sort of
+ pleasant. I ran it around St. Johns for a while, was struck by how
+ immediately comfortable it was (and how confident I felt on it), and
+ that was that.
+
+ Yesterday I took it on a ride out Foster Road toward Damascus. There’s
+ a side road I head out onto that eventually rejoins on the other side
+ of Damascus, close to a back road that joins the highway down to
+ Estacada. So I headed out past Estacada, to see how it did on a small
+ back highway. There was a little bit of buffeting — no fairings — but
+ it ran and handled well. I felt more confident on the little back roads
+ coming back than I did heading out as I got to know the bike better. I
+ did decide to detract from its vintage purity a little by ordering a
+ Dart flyscreen when I got back: People say it helps clean up the
+ turbulence at highway speeds, and keeps the bugs off the pretty silver
+ cans.
+
+ Anyhow, glad I’ve got it in the driveway with so much of the riding
+ season left, and I can wholeheartedly recommend Sabatino Moto if you’re
+ looking to buy one for yourself.
+
+ * [14]journal
+ * [15]conflict
+
+ [16]« Prev
+ Daily notes for 2023-07-18 [17]Next »
+ Mission: Incomprehensible © 2023 Mike Hall — [18]Colophon
+
+References
+
+ Visible links:
+ 1. https://mike.puddingtime.org/
+ 2. https://mike.puddingtime.org/about/
+ 3. https://mike.puddingtime.org/tags/
+ 4. https://mike.puddingtime.org/categories/
+ 5. https://mike.puddingtime.org/search/
+ 6. https://mike.puddingtime.org/index.xml
+ 7. https://mike.puddingtime.org/
+ 8. https://mike.puddingtime.org/posts/
+ 9. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L12623-9641TMP.html#notes-on-conflict
+ 10. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L12623-9641TMP.html#the-int650
+ 11. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L12623-9641TMP.html#notes-on-conflict
+ 12. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L12623-9641TMP.html#the-int650
+ 13. https://www.sabatinomoto.com/
+ 14. https://mike.puddingtime.org/tags/journal/
+ 15. https://mike.puddingtime.org/tags/conflict/
+ 16. https://mike.puddingtime.org/posts/2023-07-18-daily-notes/
+ 17. https://mike.puddingtime.org/posts/2023-07-15-mission--incomprehensible/
+ 18. file:///colophon
+
+ Hidden links:
+ 20. https://social.lol/@mph
+ 21. https://pix.puddingtime.org/
+ 22. file://localhost/var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L12623-9641TMP.html#top
diff --git a/static/archive/www-robinsloan-com-sbm0vr.txt b/static/archive/www-robinsloan-com-sbm0vr.txt
new file mode 100644
index 0000000..8285419
--- /dev/null
+++ b/static/archive/www-robinsloan-com-sbm0vr.txt
@@ -0,0 +1,347 @@
+ #[1]next [2]alternate
+
+ [3]Home [4]About [5]New: Concept album
+
+ From: Robin Sloan
+ To: the lab
+ Sent: March 2023
+
+ Phase change
+
+ An extremely close-up photograph of a snowflake, looking almost
+ architectural. [6]Snowflake, Wilson Bentley, ca. 1910
+
+ Please excuse the off-schedule transmission. The idea of a steady,
+ predictable publishing cadence is always so appealing … and then events
+ overtake me!
+
+ I think this lab newsletter will shift into a “whenever appropriate”
+ schedule for the rest of this year. In this news flash, you’ll find two
+ items: a time-sensitive link, and some thoughts on all that’s happening
+ with AI.
+
+ This is an archived edition of Robin’s lab newsletter. You can sign up
+ to receive future editions using the form at the bottom of the page.
+
+ A group of internet thinkers has proposed a [7]Summer of Protocols:
+
+ an 18-week program that will run from May 1 to Aug 31, 2023, and
+ aims to catalyze broad-based and wide-ranging exploration of the
+ rapidly evolving world of protocols.
+
+ [8]Applications are due in just a couple weeks, which is why I wanted
+ to circulate the link immediately. I don’t know a ton about the program
+ or its organizers, but I like the spirit captured on the website, and
+ I feel like it might be a generative opportunity for someone(s)
+ reading this.
+
+ Even for those of us who aren’t going to participate, the introductory
+ paper makes for a bracing, inspiring read: [9]The Unreasonable
+ Sufficiency of Protocols.
+
+ Now, on to the AI thoughts, which, as you’ll see, loop around to
+ connect to protocols again:
+
+[10]Finding a question
+
+ Earlier this week, in [11]my main newsletter, I praised a new project
+ from Matt Webb. Here, I want to come at it from a different angle.
+
+ Briefly: Matt has built the [12]Braggoscope, a fun and useful
+ application for exploring the archives of the beloved BBC radio show In
+ Our Time, hosted by the inimitable Melvyn Bragg.
+
+ In Our Time only provides HTML pages for each episode — there’s no
+ structured data, no sense of “episode X is connected to episode Y
+ because of shared feature Z”.
+
+ As Matt explains [13]in his write-up, he fed the plain-language content
+ of each episode page into the GPT-3 API, cleverly prompting it to
+ extract basic metadata, along with a few subtler properties — including
+ a Dewey Decimal number!?
+
+ (Explaining how and why a person might prompt a language model is
+ beyond the scope of this newsletter; you can [14]read up about it
+ here.)
+
+ Here’s [15]a bit of Matt’s prompt:
+Extract the description and a list of guests from the supplied episode notes fro
+m a podcast.
+
+Also provide a Dewey Decimal Classification code and label for the description
+
+Return valid JSON conforming to the following Typescript type definition:
+
+{
+ "description": string,
+ "guests": {"name": string, "affiliation": string | null}[]
+ "dewey_decimal": {"code": string, "label": string},
+}
+
+Episode synopsis (Markdown):
+
+{notes}
+
+Valid JSON:
+
+ Important to say: it doesn’t work perfectly. Matt reports that GPT-3
+ doesn’t always return valid JSON, and if you browse the Braggoscope,
+ you’ll find plenty of questionable filing choices.
+
+ And yet! What a technique. (Matt credits Noah Brier for [16]the
+ insight.)
+
+ It fits into a pattern I’ve noticed: while the buzzy application of the
+ GPT-alikes is chat, the real workhorse might be text transformation.
+
+ As Matt writes:
+
+ Sure Google is all-in on AI in products, announcing chatbots to
+ compete with ChatGPT, and synthesised text in the search engine.
+ BUT.
+
+ Using GPT-3 as a function call.
+
+ Using GPT-3 as a universal coupling.
+
+ It brings a lot within reach.
+
+ I think the magnitude of this shift … I would say it’s on the order
+ of the web from the mid 90s? There was a radical simplification and
+ democratisation of software (architecture, development, deployment,
+ use) that took decades to really unfold.
+
+ For me, 2022 and 2023 have presented two thick strands of inquiry: the
+ web and AI, AI and the web. This is evidenced by the structure of these
+ lab newsletters, which have tended towards birfucation.
+
+ Matt’s thinking is interesting to me because it brings the
+ strands together.
+
+ One of the pleasures of HTTP (the original version) is that it’s almost
+ plain language, though a very simple kind. You can execute an HTTP
+ request “by hand”: telnet www.google.com 80 followed by GET /.
+
+ Language models as universal couplers begin to suggest protocols that
+ really are plain language. What if the protocol of the GPT-alikes is
+ just a bare TCP socket carrying free-form requests and instructions?
+ What if the RSS feed of the future is simply my language model replying
+ to yours when it asks, “What’s up with Robin lately?”
+
+ I like this because I hate it; because it’s weird, and makes me
+ feel uncomfortable.
+ __________________________________________________________________
+
+ I think it’s really challenging to find the appropriate stance towards
+ this stuff.
+
+ On one hand, I find critical deflation, of the kind you’ll hear from
+ Ted Chiang, Simon Willison, and Claire Leibowicz in [17]this recent
+ episode of KQED Forum, appropriate and useful. The hype is so powerful
+ that any corrective is welcome.
+
+ However! On the critical side, the evaluation of what’s before us isn’t
+ sufficient; not even close. If we demand humility from AI engineers,
+ then we ought to match it with imagination.
+
+ An important fact about these language models — one that sets them
+ apart from, say, the personal computer, or the iPhone — is that their
+ capabilities have been surprising, often confounding, even to
+ their creators.
+
+ AI at this moment feels like a mash-up of programming and biology. The
+ programming part is obvious; the biology part becomes apparent when you
+ see [18]AI engineers probing their own creations the way you might
+ probe a mouse in a lab.
+
+ The simple fact is: even at the highest levels of theory and practice,
+ no one knows how these language models are doing what they’re doing.
+
+ Over the past few years, in the evolution from GPT-2-alikes to
+ GPT-3-alikes and beyond, it’s become clear that the “returns to
+ scale”—both in terms of (1) a model’s size and (2) the scope of its
+ training data — are exponential and nonlinear. Simply adding more works
+ better, and works weirder, than it should.
+
+ The nonlinearity is, to me, the most interesting part. As these models
+ have grown, they have undergone widely observed “phase changes” in
+ capability, just as sudden and surprising as water frozen or
+ cream whipped.
+
+ At the moment, my deepest engagement with a language model is in a
+ channel on a Discord server, where our gallant host has set up a
+ ChatGPT-powered bot and laced a simple personality into its prompt. The
+ sociability has been a revelation — multiplayer ChatGPT is much, MUCH
+ more fun than single player — and, of course, the conversation tends
+ towards goading the bot, testing its boundaries, luring it
+ into absurdities.
+
+ The bot writes poems, sure, and song lyrics, and movie scenes.
+
+ The bot also produces ASCII art, and SVG code, and [19]PICO-8 programs,
+ though they don’t always run.
+
+ I find myself deeply ambivalent, in the original sense of: thinking
+ many things at once. I’m very aware of the bot’s limitations, but/and
+ I find myself stunned by its fluency, its range.
+
+ Listen: you can be a skeptic. In some ways, I am! But these phase
+ changes have happened, and that probably means they will keep
+ happening, and no one knows (the AI engineers least of all) what might
+ suddenly become possible.
+
+ As ever, [20]Jack Clark is my guide. He’s a journalist turned AI
+ practioner, involved in policy and planning at the highest levels,
+ first at OpenAI, now at Anthropic. And if he’s no longer a
+ disinterested observer, he remains deeply grounded and moral, which
+ makes me trust him when he says, with confidence: this is the biggest
+ thing going, and we had all better brace for weird times ahead.
+ __________________________________________________________________
+
+ What does that mean, to brace for it?
+
+ I’ve found it helpful, these past few years, to frame my anxieties and
+ dissatisfactions as questions. For example, fed up with the state of
+ social media, [21]I asked: what do I want from the internet, anyway?
+
+ It turns out I had an answer to that question.
+
+ Where the GPT-alikes are concerned, a question that’s emerging for
+ me is:
+
+ What could I do with a universal function — a tool for turning just
+ about any X into just about any Y with plain language instructions?
+
+ I don’t pose that question with any sense of wide-eyed expectation; a
+ reasonable answer might be, eh, nothing much. Not everything in the
+ world depends on the transformation of symbols. But I think that IS the
+ question, and I think it takes some legitimate work, some strenuous
+ imagination, to push yourself to believe it really will be “just about
+ any X” into “just about any Y”.
+
+ I help operate [22]a small olive oil company, and I have actually spent
+ a fair amount of time lately considering this question in the context
+ of our business. What might a GPT-alike do for us? What might an even
+ more capable system do?
+
+ My answer, so far, is indeed: eh, nothing much! It’s a physical
+ business, after all, mainly concerned with moving and transforming
+ matter. The “obvious” application is customer support, which I handle
+ myself, and which I am unwilling to cede to a computer or, indeed,
+ anyone who isn’t me. The specific quality and character of our support
+ is important.
+
+ (As an aside: every customer support request I receive is a miniature
+ puzzle, usually requiring deduction across several different systems.
+ Many of these puzzles are challenging even to the general intelligence
+ that is me; if it comes to pass that a GPT-alike can handle them
+ without breaking a sweat, I will be very, very impressed.)
+
+ (Of course, it’s not going to happen like that, is it? Long before
+ GPT-alikes can solve the same problems Robin can, using the tools Robin
+ has, the problems themselves will change to meet the GPT-alikes
+ halfway. The systems will all learn to “speak GPT”, in some sense.)
+
+ The simple act of asking and answering the question was clarifying and
+ calming. It plucked AI out of the realm of abstract dread and plunked
+ it down on the workbench.
+ __________________________________________________________________
+
+ Jack Clark includes, in all of his AI newsletters, a piece of original
+ micro-fiction. One of them, [23]sent in December, has stayed with me.
+ I’ll reproduce it here in full:
+
+ Reality Authentication
+
+ [The internet, 2034]
+
+ “To login, spit into the bio-API”
+
+ I took a sip of water and swirled it around my mouth a bit, then
+ hawked some spit into the little cup on my desk, put its lid on,
+ then flipped over the receptacle and plugged it into the
+ bio-API system.
+
+ “Authenticating … authentication successful, human-user identified.
+ Enjoy your time on the application!”
+
+ I spent a couple of hours logged-on, doing a mixture of work and
+ pleasure. I was part of an all-human gaming league called the
+ No-Centaurs; we came second in a mini tournament. I also talked to
+ my therapist sans his augment, and I sent a few emails over the
+ BioNet protocol.
+
+ When I logged out, I went back to the regular internet. Since the AI
+ models had got minituarized and proliferated a decade ago, the
+ internet had radically changed. For one thing, it was so much faster
+ now. It was also dangerous in ways it hadn’t been before - Attention
+ Harvesters were everywhere and the only reason I was confident in my
+ browsing was I’d paid for a few protection programs.
+
+ I think “brace for it” might mean imagining human-only spaces, online
+ and off. We might be headed, paradoxically, for a golden age of “get
+ that robot out of my face”.
+
+ In the extreme case, if AI doesn’t wreck the world, language models
+ could certainly wreck the internet, like Jack’s Attention Harvesters
+ above. Maybe we’ll look back at the Web Parenthesis, 1990-2030. It was
+ weird and fun, though no one in the future will quite understand
+ the appeal.
+
+ We are living and thinking together in an interesting time. My
+ recommendation is to avoid chasing the ball of AI around the field,
+ always a step behind. Instead, set your stance a little wider and form
+ a question that actually matters to you.
+
+ It might be as simple as: is this kind of capability, extrapolated
+ forward, useful to me and my work? If so, how?
+
+ It might be as wacky as: what kind of protocol could I build around
+ plain language, the totally sci-fi vision of computers just TALKING to
+ each other?
+
+ It might even be my original question, or a version of it: what do
+ I want from the internet, anyway?
+
+ From Oakland,
+
+ Robin
+
+ March 2023, Oakland
+
+ I'm [24]Robin Sloan, a fiction writer. You can sign up for my
+ lab newsletter:
+ ____________________ Subscribe
+
+ This website doesn’t collect any information about you or your reading.
+ It aspires to the speed and privacy of the printed page.
+
+ Don’t miss [25]the colophon. Hony soyt qui mal pence
+
+References
+
+ 1. file:///confirm/main/subscribe/
+ 2. https://www.robinsloan.com/feed.xml
+ 3. file:///
+ 4. file:///about
+ 5. https://ooo.ghostbows.ooo/?utm_source=Robin_Sloan_sent_me
+ 6. https://publicdomainreview.org/essay/the-snowflake-man-of-vermont?utm_source=Robin_Sloan_sent_me
+ 7. https://efdn.notion.site/Summer-of-Protocols-3d7983d922184c4eb72749e9cb60d076?utm_source=Robin_Sloan_sent_me
+ 8. https://efdn.notion.site/Application-5b71c238d6bd44cf9137946ef7767e53?utm_source=Robin_Sloan_sent_me
+ 9. https://efdn.notion.site/Pilot-Study-1bf3e3be6bf34a2eb8156ddf98d3fa67?utm_source=Robin_Sloan_sent_me
+ 10. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L12614-3163TMP.html#gpt
+ 11. https://www.robinsloan.com/newsletters/ring-got-good/?utm_source=Robin_Sloan_sent_me
+ 12. https://genmon.github.io/braggoscope/?utm_source=Robin_Sloan_sent_me
+ 13. https://interconnected.org/home/2023/02/07/braggoscope?utm_source=Robin_Sloan_sent_me
+ 14. https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?utm_source=Robin_Sloan_sent_me
+ 15. https://news.ycombinator.com/item?id=35073824&utm_source=Robin_Sloan_sent_me
+ 16. https://brxnd.substack.com/p/the-prompt-to-rule-all-prompts-brxnd?utm_source=Robin_Sloan_sent_me
+ 17. https://www.kqed.org/forum/2010101892368/how-to-wrap-our-heads-around-these-new-shockingly-fluent-chatbots?utm_source=Robin_Sloan_sent_me
+ 18. https://www.anthropic.com/index/toy-models-of-superposition-2?utm_source=Robin_Sloan_sent_me
+ 19. https://www.lexaloffle.com/pico-8.php?utm_source=Robin_Sloan_sent_me
+ 20. https://importai.substack.com/?utm_source=Robin_Sloan_sent_me
+ 21. file:///lab/specifying-spring-83/
+ 22. https://fat.gold/?utm_source=Robin_Sloan_sent_me
+ 23. https://us13.campaign-archive.com/?u=67bd06787e84d73db24fb0aa5&&id=a03ebcd500&utm_source=Robin_Sloan_sent_me
+ 24. https://www.robinsloan.com/about?utm_source=Robin_Sloan_sent_me
+ 25. file:///colophon/