Banana Signal Loss
Ep. 46

Banana Signal Loss

•

Episode description

Download transcript (.vtt)
0:00

[JM]: So I got a message right before we started recording, but before I explain the message, I have to explain what "Virtualenv" is.

0:06

[JM]: Virtualenv is a Python tool for virtual environments.

0:10

[JM]: It's a way where you can install dependencies and have those environments isolated from each other and from your global workstation's system as a whole.

0:20

[JM]: So I get this message from my friend Hynek right before we started recording saying, "Congrats, you made it into the Virtualenv docs."

0:29

[JM]: And then there's a link to the compatibility page for Virtualenv.

0:33

[JM]: So naturally I tap on the link and I'm looking at this page and I have no idea what Hynek is talking about.

0:40

[DJ]: There wasn't like a big banner at the top that said, "Fine, Justin, we'll do that thing that you've been bothering us about for like five years."

0:47

[JM]: I'm looking through it and I maintain a project called VirtualFish, which is a tool for Fish shell to manage your virtual environments.

0:58

[JM]: And so I thought, okay, well, that would be a natural fit.

1:01

[JM]: This is a compatibility page.

1:03

[JM]: Maybe there's some reference to VirtualFish on it, but I don't see VirtualFish.

1:08

[JM]: I don't see my name.

1:09

[JM]: And it takes me the better part of a minute as I'm looking through this, just wondering what is he talking about?

1:16

[JM]: And then towards the bottom in the MacOS section, it says "Python versions installed via Homebrew".

1:24

[JM]: And then in parentheses.

1:26

[JM]: So the idea is that, yes, this has compatibility with Python versions installed via Homebrew.

1:32

[JM]: But then in parentheses, it says works, but not recommended.

1:37

[JM]: And then the "not recommended" part is highlighted.

1:39

[JM]: And then I thought, oh, wait a minute.

1:41

[JM]: I hovered over the "not recommended" part.

1:43

[JM]: And sure enough, it's a link to justinmayer.com to a post that I wrote called "Homebrew Python Is Not for You".

1:53

[JM]: And I wrote this article over five years ago.

1:56

[JM]: And I've seen other folks reference it and link to it in the past.

2:02

[JM]: But to be linked to it from within the Virtualenv documentation itself is a real honor and a surprise.

2:10

[JM]: And the gist of my article is that installing Python via Homebrew really isn't for you, the end user, it's for use with other packages that you can install via Homebrew.

2:24

[JM]: So if you install some package on Homebrew, sometimes it might install Python as well because that package lists it as a dependency or some package it also needs installed, but I

2:37

[JM]: wrote this post because of numerous problems that I had when installing Python in this way.

2:41

[JM]: And apparently it resonated with other folks who have had similar problems, enough that someone took the time to link to my post in the Virtualenv documentation.

2:53

[JM]: So I'm glad it was useful.

2:55

[JM]: And thanks to Hynek for pointing out that this happened and it made my day.

3:01

[DJ]: That's pretty cool.

3:02

[DJ]: I guess now I have questions like, how on earth did Hynek come across this random link, like link to from this random part of this compatibility page?

3:14

[DJ]: Unless it turns out he's one of the maintainers of the Virtualenv documentation and he snuck it in there just to prank you.

3:20

[JM]: That would be very in-character for him, as I'm sure he would admit himself, but I do not know.

3:27

[JM]: I'm sure I could dig through the commit history for the documentation and see who was responsible for this, but I have not done that yet.

3:36

[DJ]: As a little side anecdote to this, I became aware in the early days of my journey with Python.

3:45

[DJ]: That's a weird way to put that, but oh well, now it's in the show.

3:50

[DJ]: When I started using Python, I...

3:52

[DJ]: It didn't take me too long to become aware that basically you're never supposed to change anything about your system's Python install because you might break important things.

4:01

[DJ]: And instead, there are tools like Virtualenv so that when you're working on a given project, you can manage that project's Python dependencies, including the version of Python itself.

4:12

[DJ]: locally.

4:12

[DJ]: And over time, I've come across tools to do that.

4:16

[DJ]: My current favorite is a tool called UV, which I find seems to be a pretty elegant tool for managing dependencies.

4:24

[DJ]: One thing that I've noticed, though, now that I'm doing a lot of

4:28

[DJ]: coding assisted by generative tools is the tools do not necessarily understand this principle.

4:34

[DJ]: And so the first time that I saw one of these tools was I wanted to test out the work that it had generated.

4:42

[DJ]: And I have it set to ask me permission to run any shell command.

4:46

[DJ]: I haven't generally been using these tools in the sort of, yeah, just do whatever you want way.

4:51

[DJ]: And the first time I saw the tool be like, I'm just going to do like pip install, like just globally, like with just whatever Python is on the command line without creating a virtual environment first.

5:02

[DJ]: I was just like, no, get away.

5:04

[DJ]: I did the metaphorical equivalent of like slapping the Python interpreter out of its hands.

5:11

[DJ]: And I'm just like, no, no, no.

5:12

[DJ]: I have to teach you how to use uv from now on.

5:15

[JM]: There is a little known environment variable and I think also a pip configuration setting that basically says, require a virtual environment when running certain commands, so that if you have set this configuration setting, when you go to run "pip install foo", outside of an active virtual environment, it will fail and error out and say,

5:38

[JM]: "Virtual environment activation required" to prevent you from accidentally installing some package into your global system packages that you didn't intend to.

5:48

[JM]: And that's something that I've had set for, I don't know how long, but I don't think it's very widely known, or at least it wasn't widely known for a long time because it was barely, if at all, documented.

6:00

[JM]: It was like some obscure thing you just had to know about because it was in the source code.

6:04

[JM]: But perhaps now it's better documented, or at least I hope so.

6:07

[DJ]: I wonder if the day will ever come when they release a version of pip where they start saying like, all right, going forward from version x.y.z, this is now on by default or something like that.

6:20

[DJ]: Because in my limited exposure to the Python community, this now seems to just be, this is the way it's done.

6:28

[DJ]: Like you use virtual environments, you don't modify your system's Python installation.

6:33

[JM]: Yes, but that also assumes that we are infallible and never accidentally run "pip install something" without realizing that we're not in a virtual environment.

6:42

[JM]: And that's why I've always set that setting, because sometimes if you're not paying attention and you run it, then...

6:49

[JM]: it could install and you're like, Oh, okay.

6:51

[JM]: Uh, oops, control-C, control-C ... Too late.

6:53

[JM]: Um, now, you know, now you have to go and unpollute your site packages.

7:00

[JM]: But the good news is that there's these tools now, as you mentioned, whether it's UV or PDM or the umpteen others that often by default manage virtual environments for you.

7:11

[JM]: So these days, this is much less of an issue than it was in the past.

7:14

[DJ]: Before we move on, I just want to highlight control-C, control-C, oops, too late is a statement that like sends chills up the spine of anyone who has spent a substantial amount of time working from a command line interface and is total gibberish to anyone who has not done that.

7:32

[DJ]: So I think you should get it printed on a t-shirt probably.

7:36

[JM]: Okay, well, in other news, it seems like computer memory or RAM is not the only casualty of the generative software frenzy, because two of the largest, or I don't know, maybe two of the only...

7:52

[JM]: I don't recall how many companies are left, but Western Digital and Seagate have confirmed that hard drives are sold out for the rest of the year, and it is Czech's calendar the middle of February.

8:06

[JM]: So if you were in the market for hard drives for, say, your network-attached storage array, then you are...

8:15

[JM]: up the creek without a paddle unless you have lots of money and access to hard drives that these days it seems are being rapidly allocated for generative software training and inference in data centers.

8:31

[JM]: Womp womp, sad trombone.

8:34

[JM]: So I'm inserted here.

8:36

[DJ]: When you say you, are you referring to the Unraid NAS that you convinced me to build only a few months ago, in which I left lots and lots of space for the hard drives that apparently I can no longer acquire because OpenAI has purchased all of them, I assume?

8:54

[DJ]: That is precisely what I was referring to, yes.

8:57

[DJ]: That's frustrating.

8:59

[DJ]: That's very frustrating.

9:01

[DJ]: I felt so smug when I built that computer, because I had some RAM from a previous computer, and I'd noticed like, oh, well, 32 gigs of RAM is like $600 right now.

9:10

[DJ]: What the heck is going on?

9:11

[DJ]: And as we've covered previously, it turned out what was going on was the ginormous generative AI companies, I think OpenAI in particular in this case, had essentially made deals to purchase most of the entire world's supply of this computer component.

9:27

[DJ]: So I guess it shouldn't really surprise me that they've done the same for hard drives, if that is indeed the case.

9:34

[DJ]: Because I am assuming, I haven't read Western Digital's statement on this, I guess it's possible that one of their factories burned down or something like that, but I'm assuming it's just the case that, you know, one of the five largest companies in the world, or all of them, have just bought all the hard drives.

9:48

[JM]: Western Digital CEO Irving Tan said on the company's recent quarterly earnings call, we're pretty much sold out for calendar 2026.

9:57

[JM]: And he shared that most of the storage space has been allocated to its top seven customers.

10:03

[JM]: And three of those customers already have agreements with Western Digital for 2026.

10:08

[JM]: 2027 and even 2028.

10:12

[JM]: And just like the RAM topic we talked about before, the incentive for these hardware companies is to prioritize the demand from these presumably high paying, vastly venture capital funded generative software companies to the point where according to Western Digital, the consumer market, meaning you and me,

10:36

[JM]: So we can buy a hard drive or two to put into our storage arrays.

10:40

[JM]: That consumer market now accounts for just 5% of the company's revenue.

10:46

[DJ]: I have so many feelings right now.

10:47

[DJ]: They're not good feelings.

10:49

[DJ]: It's frustrating because I already recognize that as a hobbyist computer builder that that's a pretty niche thing.

10:56

[DJ]: It's true.

10:57

[DJ]: Of all of the people that I know, and I know proportionally more computer nerds than the average person probably because birds of a feather tend to flock together.

11:08

[DJ]: I recognize that for most people it is not a problem that they cannot purchase a hard drive in 2026, right?

11:15

[DJ]: If they have ever purchased a hard drive before, they haven't.

11:20

[DJ]: But if they have, perhaps it was in 2006 when you had a beige metal hard drive.

11:25

[DJ]: rectangle on your desk that you might maybe even then, like normal people didn't modify their computers.

11:32

[DJ]: So I recognize that we're already swimming upstream, but it's frustrating to hear stuff like this because I guess we had always relied to some extent on

11:41

[DJ]: You know, these companies mostly make their products for other companies, of course, because if you're producing hard drives, you have some set of customers that buy 100,000 of them at a time for millions of dollars.

11:54

[DJ]: And then you have like you and me who buy one for a couple of hundred bucks every few years.

12:00

[DJ]: Like that's obvious.

12:01

[DJ]: Yeah.

12:01

[DJ]: Obviously only part of the model, but we're like the helpful remora fish that swim alongside a shark.

12:09

[DJ]: At least I think that's a good analogy for this, right?

12:12

[DJ]: We're like the remora fish of hard drives.

12:15

[DJ]: Anyway, it's frustrating that now some other company is getting all of the food that falls out of the shark's mouth and we're not going to be able to swallow any.

12:24

[DJ]: Nope, it turned out to be a bad analogy after all.

12:26

[DJ]: But again, it's in the show now.

12:30

[JM]: On some level, I guess I'm thankful just selfishly for me that I don't have any near term crunch where I really feel like I need to buy more hard drives because I have plenty of storage for now.

12:45

[JM]: And if I felt like I was running low, I could just delete a bunch of video content that I'm probably never going to watch again anyway.

12:54

[JM]: But I do wonder what happens when one of these drives fail because on a long enough timeline that's going to happen and then I'm going to be scrambling to replace it with a ticking clock because from the moment it fails

13:09

[JM]: If another drive fails before I can replace the first one that failed, then I will lose the data on an entire drive because that's how these redundant arrays work.

13:20

[JM]: Ideally, I would have a drive just sitting here waiting to slot in, but I don't, and it doesn't sound like I'll be able to get one very easily.

13:29

[JM]: So that is troubling.

13:31

[JM]: I guess the only thing that I'm glad about is that last year, I remember thinking when I was traveling,

13:37

[JM]: Do I need another four terabyte solid state drive?

13:40

[JM]: No, not really.

13:41

[JM]: I don't really need it, but it's only like $250.

13:44

[JM]: So I just did it.

13:46

[JM]: And then I kind of felt later like it was silly because I didn't really need it.

13:51

[JM]: And now, of course, it seems like I foretold the future.

13:54

[JM]: And I have this extra solid state drive that I don't even know if I could buy it now.

13:59

[JM]: And if so, at what price?

14:00

[JM]: So I guess, you know, I should feel good about that.

14:04

[DJ]: Yes, congratulations, and I will expect you to ship that drive to me in the coming week.

14:10

[DJ]: No, I mean, I don't really need more storage right away either, but it was comforting to think that I could get some, and maybe now I can't.

14:18

[DJ]: I'm going to have to explore that secondary market of refurbished enterprise hard drives I've heard so much about, because maybe the generative AI data centers haven't gotten to those yet.

14:30

[JM]: In another bit of follow-up, I wanted to mention that we discussed a few weeks ago that the head of Microsoft's generative software division was complaining and asking people to stop using the word "slop" for software-generated content.

14:46

[DJ]: And we did.

14:47

[DJ]: And that's why you haven't heard anyone use that term at all in the past couple of weeks, because his whining was incredibly successful at changing the behavior of people on the Internet.

14:59

[JM]: It was hugely effective.

15:01

[JM]: And that's the end of the story.

15:02

[DJ]: Yeah.

15:02

[JM]: Oh, wait, no, that's not what happened.

15:04

[JM]: Oh, it's not?

15:05

[JM]: No, we dunked on him relentlessly, as did every single other person who heard him complaining about it, to the point where the term "Microslop" instead of Microsoft is now trending.

15:21

[JM]: So as usual, the internet stays undefeated.

15:24

[JM]: I think it's going to be so great to just refer to things that Microsoft does from now on.

15:29

[DJ]: has yet more Microslop.

15:32

[DJ]: I can see that the word Microslop now has a know your meme page, which makes it official that this is now a thing.

15:39

[DJ]: So the floodgates are open, people.

15:42

[DJ]: Refer to everything that Microsoft does and possibly even to the company itself as Microslop.

15:48

[DJ]: This is a call to arms that I can get behind.

15:50

[DJ]: Yeah, I remember a previous generation took up referring to their flagship operating system as wind blows.

15:58

[DJ]: So we could bring that one back to maybe, but it could, but that might be to 1990s.

16:02

[DJ]: So it's the 2020s now and Microslop is where it's at.

16:07

[JM]: Indeed.

16:07

[JM]: In other news, it seems that Apple has announced integrated video podcasts.

16:15

[DJ]: I have bad news for them because it turns out that a website called YouTube has already gotten to that check's calendar, oh, 30 years ago.

16:22

[JM]: It seems that they are trying to catch up with YouTube and Spotify.

16:28

[JM]: And the way they describe it on the Apple page for podcasters is video arrives this spring.

16:35

[JM]: A new video experience is coming to Apple Podcasts.

16:39

[JM]: Deliver a video that integrates seamlessly with your existing podcast.

16:42

[JM]: Monetize on your terms and use the same tools and workflows you rely on today.

16:47

[JM]: You stay in control while giving your audience more ways to engage.

16:51

[JM]: And Apple goes on to say that Apple Podcasts now supports video delivery using HLS, a new standard for podcasts that enhances the experience without interrupting the features you and your audience rely on.

17:06

[JM]: Now, I have never heard of HLS, nor do they explain what this phantom initialism stands for.

17:14

[JM]: But further down the page, they say that you can get prepared for this now if you publish a show on Apple Podcasts via certain companies or podcast production tools listed at the bottom.

17:29

[JM]: And I can't help but get the feeling that this is mainly about advertising.

17:35

[JM]: And as I read further down the page, it seems like that suspicion is more or less confirmed when it says, Apple Podcasts is an open platform.

17:44

[JM]: You control your monetization.

17:46

[JM]: Choose your hosting provider, your ad partners, and your business model.

17:50

[JM]: And for the first time, you can dynamically insert video ads, including host read through your hosting provider,

17:57

[JM]: delivering targeted campaigns with full creative control.

18:00

[JM]: And I've already talked about my deep, deep love of dynamic ad insertion.

18:05

[JM]: I can't wait to see the video version of it.

18:09

[JM]: So yeah.

18:10

[JM]: I also find the pre-announcement thing kind of weird.

18:15

[JM]: Like has Apple not learned anything from its pre-announcing of Apple intelligence and all the amazing things that it was gonna do?

18:23

[JM]: I mean, presumably they are announcing this now so that people can prepare for it and start getting things going.

18:31

[JM]: But I don't know.

18:32

[JM]: This whole, like, coming soon or coming in the spring or coming any time other than today, I just feel is ill-advised and...

18:42

[JM]: It's not very Apple-like to do this, at least if you go back far enough.

18:47

[JM]: In the last half decade or maybe even decade, it seems like they've changed their tune and vaporware seems to be more their style than it ever was in the past.

18:58

[JM]: I don't know.

18:58

[JM]: This is not something I'm going to be holding my breath for because I'm not really interested in video podcasts, but that's me.

19:05

[JM]: What about you?

19:05

[JM]: Do you watch video podcasts, Dan?

19:06

[DJ]: I don't watch video podcasts, but I have to assume whoever's listening to this is wondering if we are soon going to be producing one.

19:13

[DJ]: And I can tell them, looking at what my hair looks like right now, no, we won't.

19:17

[DJ]: No, we won't.

19:19

[JM]: People have asked me if I have ever considered making a version of this show that includes video.

19:24

[JM]: And without saying, yeah, that's not happening, I've always just replied with, I'm...

19:31

[JM]: Not interested in that at this time.

19:33

[JM]: I never want to be that person who says like, oh yeah, absolutely not.

19:37

[JM]: And then six months later, it's like, ah, guess what?

19:39

[JM]: Changed my mind.

19:40

[JM]: And now I look silly.

19:42

[JM]: So, but at least as it stands now, yeah, I'm with you.

19:45

[JM]: I prefer the audio format.

19:47

[JM]: One other tidbit about this announcement is how in the end, it's really a play for Apple services revenue.

19:55

[JM]: Because I found this other Apple quote, Apple will charge participating ad networks an impression based fee for the delivery of dynamic ads in HLS video on Apple podcasts starting later this year.

20:08

[JM]: So in other words, every dynamic ad that goes into one of these video podcasts, Apple is going to take a cut for themselves.

20:15

[DJ]: Congratulations, I guess.

20:18

[DJ]: So when you frame it that way, the announcement reads a little bit like, hey guys, coming later this year, we've come up with a new way to make more money, which is for some reason I have a hard time getting excited about, but I might just be becoming overly cynical.

20:35

[JM]: Moving on from video to something audio related.

20:39

[JM]: A clever moderator on DIY audio set up an experiment to determine whether listeners could differentiate between audio run through pro audio copper wire

20:53

[JM]: a banana and a wet mud.

20:56

[JM]: And spoiler, the results indicated that users were unable to accurately distinguish between these different media.

21:04

[JM]: So if you are one of those people that spent $600 on a Monster cable to connect your speakers to your amplifier, I've got news for you.

21:15

[JM]: You might have wasted some money because apparently you could have used a banana, which costs, last I checked, about 7 cents.

21:23

[DJ]: I'm not sure it's entirely fair to do that direct comparison of $600 to $0.07 because the last time I checked, bananas did not include a standard interface for plugging them into your amplifier.

21:37

[DJ]: So I think you would need to at least add something on top of the $0.07 banana.

21:42

[DJ]: And then if your speakers are several feet away, you might have to chain multiple bananas together.

21:46

[DJ]: And did this experiment account for signal loss across bananas?

21:52

[DJ]: I don't think it did.

21:53

[JM]: Thank you for rightfully pointing out banana signal loss as a potential factor in these component interconnects.

22:01

[JM]: You're quite right.

22:02

[JM]: And I obviously was somewhat facetious, but I mentioned this because of

22:09

[JM]: people that I know who are super into high fidelity audio equipment and who have legitimately spent, forget $600, like thousands of dollars on a single cable and maybe thousands

22:24

[JM]: They are the outlier.

22:26

[JM]: Maybe they can hear the difference between high-end copper wire and wet mud.

22:32

[JM]: But apparently an untrained listener cannot tell the difference.

22:38

[JM]: And I just find that amusing.

22:40

[JM]: And I wish that these people that I know who are these high-end folks, I wish we could replicate the same test and see if they could distinguish the difference between these various

22:54

[JM]: non-copper based interconnects.

22:57

[DJ]: I'm imagining, Justin, I'm imagining you recording a video where you're like, I'm in my friend's house and I've replaced all his audio cabling with wet mud.

23:06

[DJ]: Let's see if he notices.

23:09

[DJ]: And then cut to him like stepping in mud and being like, oh, why is there all this mud on the floor of my house?

23:16

[DJ]: And then it cuts back to you and you're just like looking knowingly at the camera.

23:20

[DJ]: Now that's video podcasting.

23:24

[DJ]: Cute dynamic ad insertion.

23:27

[JM]: A funny thing about why this forum moderator decided to try this experiment is that they watched a documentary in which the United States Army was setting up a singular telegraph wire in the Philippines.

23:43

[JM]: And they thought it wouldn't work because the idea was that you need two wires to complete the circuit.

23:49

[JM]: And it turns out that the telegraph system used the earth as a return, even via long distances.

23:56

[JM]: So this person thought, well, if you can use the ground to transmit signals over long distances, could you use mud or apparently a banana?

24:06

[JM]: And even though they are poor conductors, it seems that they introduce very little audible changes to the signal, at least for the average person.

24:16

[JM]: All right, moving on to a tool that I came across that I figured people should know about, and that is Tiny Tool Town.

24:24

[JM]: And this website is a gallery-style site with a bunch of projects in it.

24:30

[JM]: And the tagline on the website says, a place for stupid delightful tools made with love, free, fun, and open source, made for an audience of one.

24:40

[JM]: Vibe coding is the GeoCities of the AI era, and this is the neighborhood.

24:45

[DJ]: And congratulations, if you understood that sentence, your mind is poisoned.

24:49

[JM]: And if you understood that sentence, you are not a member of Generation Z or a millennial, or you're just a fan of ancient internet lore.

24:59

[DJ]: I'm imagining someone who's like 22 right now excitedly telling their friends about GeoCities.

25:05

[JM]: I think this is just a fun, cool site, the kind of thing that I love coming across.

25:11

[JM]: Scrolling down, it goes on to elaborate and say, these are the tools that are stupid and delightful made for an audience of one built over a weekend and probably wouldn't cost more than a buck or two.

25:20

[JM]: Think of it as a neighborhood of weird little software shops, each one built with love by someone who just wanted to make something fun.

25:27

[JM]: And I suspect that a lot of these are indeed produced via generative software, but it means that tools that otherwise probably wouldn't exist get created because someone decides, well, I have an hour and I can crank this thing out and it's fun and it's silly and it's useless.

25:43

[JM]: And I would never have even attempted this without the use of generative software tools.

25:47

[JM]: So I can see why this site provides a showcase for tools that otherwise probably wouldn't exist.

25:53

[JM]: So check it out.

25:54

[JM]: There's some cool stuff in here.

25:55

[DJ]: I also noticed at the bottom of that page that it looks like it was put together or otherwise related with Scott Hanselman, who I've always been a fan of.

26:05

[DJ]: It's nice to see him still doing stuff on the internet.

26:08

[JM]: Okay, moving on.

26:09

[JM]: And it would not be a normal week in 2026 if we didn't talk about OpenClaw, which apparently is still called OpenClaw.

26:18

[JM]: But Peter Steinberger, who created the project formerly known as ClawedBot and MoltClaw.

26:27

[DJ]: MoltBot, not MoltClaw.

26:30

[DJ]: I think MoltClaw is still available in case it has to change its name again.

26:33

[DJ]: I assume Peter has registered that domain.

26:36

[JM]: I kind of want to call it MoltClaw from now on.

26:39

[JM]: Well, whatever this project is called this week, Peter Steinberger has joined OpenAI in what is probably one of the least surprising bits of news related to this whole saga.

26:52

[JM]: Because if you remember, I suggested that I thought that Apple should hire him, but of course I said that Apple won't hire him because they aren't clever enough or farsighted enough

27:05

[JM]: to do it.

27:05

[JM]: And then I quickly said, because you pointed out, well, wait, hold on.

27:09

[JM]: We don't want that to happen because that'll just mean that OpenClaw will just probably get abandoned and fall by the wayside.

27:15

[JM]: And it'll just be yet another thing that Apple has acquired and let languish.

27:19

[JM]: And that was probably true.

27:21

[JM]: And if you consider the various possible outcomes for this, it's not the worst one, I suppose, right?

27:27

[JM]: Like I'm sure every venture capital firm under the sun was falling over themselves to give

27:34

[JM]: money for OpenClaw to try to turn it into the next hot generative software startup.

27:42

[JM]: And that inevitably would have, I think, ended badly because that's usually what happens when venture capital meets software in general and particularly open source software.

27:53

[JM]: And if this means that

27:55

[JM]: as suggested in the post that Peter wrote that he is essentially getting paid to continue working on OpenClaw and that OpenClaw itself will move into a foundation that is managed by the

28:09

[JM]: Whatever governing body gets formed for that foundation, well then, who knows?

28:13

[JM]: Maybe instead of the usual startup gets hundreds of millions of dollars in venture funding and then implodes, story will have been averted here and maybe the project will continue to flourish because the person who created it is being paid handsomely to continue to work on it.

28:31

[JM]: Who knows?

28:32

[JM]: I guess we'll find out.

28:33

[JM]: One final note on this story is at the end of Peter's post, he closes it with, "The claw is the law."

28:40

[JM]: And really, I hate this so much.

28:44

[JM]: What does that even mean?

28:45

[JM]: Actually, don't answer that.

28:47

[JM]: I don't want to know.

28:47

[JM]: It's stupid and I hate it.

28:50

[JM]: But anyway, best of luck, Peter.

28:52

[JM]: And I hope the project continues to flourish and not do bad stuff.

28:58

[JM]: But it does seem that doing bad stuff is something that OpenClaw is capable of doing.

29:04

[JM]: As we saw earlier this week, when an open source maintainer received a pull request that seemed a bit nonsensical.

29:14

[JM]: And when said maintainer

29:16

[JM]: politely closed the pull request saying that it wasn't appropriate.

29:20

[JM]: The account that had published the pull request published a blog post critical of this action and published a link to that blog post as a comment to the closed pull request, essentially accusing

29:33

[JM]: the maintainer of gatekeeping and not making the project welcome to newcomers, et cetera, et cetera.

29:41

[JM]: And it turns out that this was most likely not a person, but a OpenClaw bot acting either autonomously or at the behest of its human

29:53

[JM]: And yeah, this is really something.

29:56

[JM]: As if open source doesn't have enough problems, enough challenges, enough issues with sustainability and burnout, and now we have people unleashing generative software agents so that they can publish hit-pieces on maintainers.

30:12

[JM]: And as if this couldn't get more ridiculous, when Ars Technica published an article about this story, they included quotes from

30:22

[JM]: various people that folks later figured out were completely fabricated and Ars Technica had to publish a retraction, essentially admitting that generative software was used to fabricate these quotes.

30:38

[JM]: which is just ridiculous.

30:40

[JM]: I don't even know where to begin.

30:41

[JM]: The maintainer in question published an account of this whole absurd saga to his website.

30:48

[JM]: In addition to a part two section, links to both of those will be in the show notes.

30:53

[JM]: And it seems like several reporters reached out about this story.

30:58

[JM]: And this person's website is set up to block generative software agents from scraping it.

31:04

[JM]: And the suspicion is that this is

31:07

[JM]: why whatever software agent that Ars Technica used, why they fabricated the quotes was because they couldn't access the website that they were trying to derive the information from.

31:19

[JM]: And meanwhile, the account on GitHub, the one that's presumably controlled by some generative software agent is still active on GitHub.

31:27

[JM]: And no one has stepped forward to admit that this is their account or that they own it or that they're the ones that set up OpenClaw to control it.

31:38

[JM]: But I think the reason why this story is notable is just because of the implications.

31:44

[JM]: It seems to me like the tiniest fragment of the tip of a massive iceberg.

31:53

[JM]: Like this is just a tiny, tiny taste

31:56

[JM]: of what is in store.

31:58

[JM]: When there's 100,000 agents for every single human on the planet and they're all acting independently according to their programming, I mean, can you just imagine for a moment the kind of mayhem that we are staring down the barrel at?

32:14

[DJ]: I would prefer not to.

32:15

[DJ]: What really frustrates me about this whole story is that I think it's easy for people to construe it as agents behaving badly, but the point is not the agent's behavior.

32:25

[DJ]: The point is human behavior, as it always is.

32:27

[DJ]: I'm sure it has been the case that people have had their contributions to open source projects rejected, and then instead of learning from that or just moving on,

32:40

[DJ]: They have turned to their blog, and as the article linked to here puts it, published a hit piece on the maintainer.

32:49

[DJ]: Oh, this person rejected my submission, and here's all the reasons they're a bad person, and blah, blah, blah.

32:54

[DJ]: There's nothing unique to that about this situation, except the fact that apparently a so-called software agent did all of those things.

33:04

[DJ]: And what's unfortunate about that is...

33:07

[DJ]: That in this case, the agent was used to replicate the worst behavior of an open source contributor, right?

33:14

[DJ]: Like that doesn't have to be inevitable.

33:16

[DJ]: You said that whoever is running this account has not stepped forward.

33:19

[DJ]: So assuming that it is, as it appears to be, an account that's mostly being operated by

33:25

[DJ]: an agent someone set that agent in motion and set up the circumstances and conditions that would lead to that agent publishing a blog post when its pr was rejected well whoever set up those conditions should not have done so if they want to contribute to an open source project using an agent

33:46

[DJ]: And that's obviously a controversial practice in and of itself for a bunch of reasons.

33:51

[DJ]: But if they were going to do that, then I would argue their approach should be, well, if the maintainer rejects it, like their instructions to the agent could be, if your PR is rejected, attempt in the most low impact way possible to find out why and try to refactor your work so that it gets accepted.

34:10

[DJ]: Like, it's not an inevitability that an agent has to publish a hit piece on someone, leaving aside the fact that, like, why is it able to?

34:18

[DJ]: I mean, if I was running an autonomous software agent, I still would not want to publish things to my blog, like, just on its own, right?

34:26

[DJ]: I'd want some kind of gateway there.

34:27

[DJ]: And then on the other end of this, this idea that professional journalists, and I have in the past, had a lot of respect for Ars Technica.

34:35

[DJ]: Maybe that's mostly in the past now.

34:38

[DJ]: But the idea that professional journalists, not that they would use agentic tools to try to find information, but the idea that they wouldn't perform the follow-up to be like, okay, well, I have this quote from this person that came out of an agent or a chatbot or however they acquired it.

34:57

[DJ]: Can I verify, like, can I go see this quote with my eyes somewhere else than in the output of this chatbot?

35:05

[DJ]: Well, if I can't, maybe I shouldn't include that quote.

35:08

[DJ]: Take chatbots out of it for a second.

35:10

[DJ]: That seems like just straightforward journalistic practice, but it's been abandoned here.

35:15

[DJ]: And I think that's the pattern that alarms me the most, isn't what these tools are capable of.

35:22

[DJ]: Although maybe that's getting alarming too, I don't know.

35:24

[DJ]: But it is, it's mostly, it's not what are these tools capable of?

35:28

[DJ]: It's not what are people deliberately using these tools to do?

35:31

[DJ]: It's what feels almost like a sort of reflexive abandonment of responsibility in the face of these tools.

35:40

[DJ]: Whenever I come across a statement, whether it's from a stranger or a colleague, that reads a little bit like, oh, well, you know, the AI just did this, it really gets my back up because I'm like, yeah, okay, that's fine.

35:52

[DJ]: But what did you do, the human?

35:55

[DJ]: What matters is what you do, regardless of what a computer program can do on your behalf.

36:00

[JM]: And I think you've hit upon precisely why this is different, why OpenClaw is different and other things like it.

36:08

[JM]: Because when you remove the human element, and of course there's a human element here, the human element is deploying OpenClaw in the first place and giving it access to these various things, right?

36:19

[JM]: Like presumably this blog post was not the human's blog.

36:22

[JM]: It was the bot had access to GitHub in some way,

36:26

[JM]: because there was an account created for it, or maybe it registered for its own account and it created its own blog.

36:32

[JM]: It doesn't really matter.

36:33

[JM]: The bottom line is there could have been a human involved, but there also could not have been a human involved beyond just setting it up and putting it into the world.

36:42

[JM]: And you're right that

36:43

[JM]: putting it into the world is the part where humans are at fault and failed here.

36:49

[JM]: But by making it easier and easier for people to take out that human element, and there is no gatekeeping anymore, which is kind of funny, right?

36:59

[JM]: That's what the bot was complaining about.

37:01

[JM]: It's complaining about gatekeeping.

37:02

[JM]: It's like, no, no, no.

37:03

[JM]: That's what we're here for.

37:04

[JM]: We, as humans, we're here to do the gatekeeping.

37:07

[JM]: We were trying to do the gatekeeping.

37:08

[JM]: We don't want

37:09

[JM]: bots to have unfettered access to everything.

37:12

[JM]: We've learned that lesson, at least in science fiction, it doesn't usually end well.

37:16

[JM]: And what's also interesting is that, you know, as we've talked about before, and as I have said before about this idea, like maybe we shouldn't be training

37:24

[JM]: so-called artificial intelligence on humans because we are these flawed creatures.

37:30

[JM]: Well, here's a classic example.

37:31

[JM]: What do humans do when something doesn't go their way?

37:34

[JM]: Well, they go to the press and they complain.

37:36

[JM]: And sometimes that's exactly what humanity needs, right?

37:40

[JM]: Like we need people to shine a light on things that, you know, say corporations are doing this bad.

37:45

[JM]: And sometimes that's great.

37:47

[JM]: But with this giant corpus of data that says, well, when you don't get your way, you just go to the press when that's what they're trained on.

37:53

[JM]: Well,

37:54

[JM]: who's surprised that that's what happened here?

37:56

[JM]: And in this particular case, it's not shining a light on something bad.

38:00

[JM]: It's not a force for good.

38:01

[JM]: This is a force for really, ultimately, potentially destroying open source as a concept.

38:10

[JM]: Unless we figure out ways of combating this, it's going to have huge negative impacts on an already-beleaguered part of the software world.

38:19

[JM]: So if you're going to OpenClaw, just OpenClaw responsibly, please.

38:24

[DJ]: If you're going to open claw, make sure you close claw as well.

38:27

[DJ]: I don't know what that means either, but apparently it's the law now.

38:31

[JM]: The claw is the law.

38:34

[DJ]: If you name this episode, "The claw is the law", Justin, I'm quitting this podcast.

38:40

[JM]: All right.

38:40

[JM]: That's all for this episode.

38:41

[JM]: Thanks everyone for listening.

38:42

[JM]: You can find me on the web at justinmayer.com and you can find Dan on the web at danj.ca.

38:48

[JM]: Reach out with your thoughts about this episode via the Fediverse at justin.ramble.space.