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 reason­able answer might be, *eh, nothing much*. Not every­thing in the world depends on the trans­for­ma­tion of symbols. But I think that IS the question, and I think it takes some legit­i­mate 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/