• 0 Posts
  • 505 Comments
Joined 2 years ago
cake
Cake day: June 9th, 2023

help-circle
  • It’s also not capitalism.

    Adam Smith is seen as the person most responsible for coming up with the concept of capitalism, and he hated landlords.

    “Landlords’ right has its origin in robbery. The landlords, like all other men, love to reap where they never sowed, and demand a rent even for the natural produce of the earth.”

    More details about what he thought of rent in his book An Inquiry into the Nature and Causes of the Wealth of Nations.

    Adam Smith imagined a world with well-regulated capitalism. In that world, a capitalist might invest in a factory to make a widget. They’d take raw materials, use capital (including labour) and end up with a product that people would want to buy. That capitalist would always have to stay on their toes because if they got lazy, another capitalist could undercut them by using their capital better, to either undercut the widget’s price, or to sell it more cheaply. This competition was key, as well as the idea of the capitalist putting in work to continuously improve their processes. A capitalist who didn’t continually improve their processes would lose to their competitors, see their widget sales drop to zero, and go out of business.

    In Adam Smith’s time, the alternative to capitalism was feudalism, where a landlord owned a huge estate, had serfs working on that estate, and simply collected a cut of everything the serfs produced as rent. In that scenario, the landlord had to do almost no work. It was the farmers on their estate who did the work. The landlord just owned the land and charged rent. Originally, serfs were even tied to the land, so they weren’t allowed to leave to work elsewhere, and their children were bound to the same land. But, even once that changed, there was still good farmland. The landlord could lower the rent until it was worth it for a farmer to work the land. The key thing is that the landlord didn’t have to do anything at all, just own the land and charge rent for its use.

    I think the reason that people are so pissed off with capitalism these days is that what we’re really seeing is a neo-Feudalism, or what Yanis Varoufakis calls technofeudalism.

    Think of YouTube. A person puts tons of time and money into making a video, they upload it to the only viable video platform for user-made video, YouTube. YouTube hosts the video, then charges a big cut of any advertising revenue the video generates, basically charging rent for merely being the “land” on which the video lives. In a proper capitalist world, there would be plenty of sites to host videos, plenty of ad companies competing to buy ad spots for a video, etc. But, YouTube is a monopoly, and internet advertising is a duopoly between Google and Facebook. They mostly don’t even compete anymore, each has their own area of the Internet they control and so they’re a local monopoly. This allows them to behave like feudal lords rather than capitalists. There’s no need for them to innovate, no need for them to compete, they just own the land and charge rent. Same with Apple and their app store. There are no other app stores permitted on iPhones, so Apple can charge an outrageous 30%.

    It goes well beyond tech though. Say you’re a Canadian and you want to avoid American products, but you love your carbonated beverages. You could buy Coke, but that’s American. Pepsi? That’s American. Royal Crown cola? Sure sounds like it might be Canadian, or British, but no, it’s American. Just look at the chain of mergers for its parent company: “Formed in July 2018, with the merger of Keurig Green Mountain and Dr Pepper Snapple Group (formerly Dr. Pepper/7up Inc.), Keurig Dr Pepper offers over 125 hot and cold beverages.” Sure, if you look you can find specialty things like Jarritos, but the huge brands just dominate the shelves.

    Capitalists hate capitalism, they want to be feudal lords, and since the time of Reagan / Thatcher / Mulroney / etc. competition hasn’t been properly regulated, allowing all the capitalists to merge into enormous companies that no longer have to compete, and can instead act as feudal lords extracting rent.








  • What’s really awful is that it seems like they’ve trained these LLMs to be “helpful”, which means to say “yes” as much as possible. But, that’s the case even when the true answer is “no”.

    I was searching for something recently. Most people with similar searches were trying to do X, I was trying to do Y which was different in subtle but important differences. There are tons of resources out there showing how to do X, but none showing how to do Y. The “AI” answer gave me directions for doing Y by showing me the procedure for doing X, with certain parts changed so that they match Y instead. It doesn’t work like that.

    Like, imagine a recipe that not just uses sugar but that relies on key properties of sugar to work, something like caramel. Search for “how do I make caramel with stevia instead of sugar” and the AI gives you the recipe for making caramel with sugar, just with “stevia” replacing every mention of “sugar” in the original recipe. Absolutely useless, right? The correct answer would be “You can’t do that, the properties are just too different.” But, an LLM knows nothing, so it is happy just to substitute words in a recipe and be “helpful”.



  • I believe that, because test scripts tend to involve a lot of very repetitive code, and it’s normally pretty easy to read that code.

    Still, I would bet that out of 1000 tests it writes, at least 1 will introduce a subtle logic bug.

    Imagine you hired an intern for the summer and asked them to write 1000 tests for your software. The intern doesn’t know the programming language you use, doesn’t understand the project, but is really, really good at Googling stuff. They search online for tests matching what you need, copy what they find and paste it into their editor. They may not understand the programming language you use, but they’ve read the style guide back to front. They make sure their code builds and runs without errors. They are meticulous when it comes to copying over the comments from the tests they find and they make sure the tests are named in a consistent way. Eventually you receive a CL with 1000 tests. You’d like to thank the intern and ask them a few questions, but they’ve already gone back to school without leaving any contact info.

    Do you have 1000 reliable tests?


  • That’s the problem. Maybe it is.

    Maybe the code the AI wrote works perfectly. Maybe it just looks like how perfectly working code is supposed to look, but doesn’t actually do what it’s supposed to do.

    To get to the train tracks on the right, you would normally have dozens of engineers working over probably decades, learning how the old system worked and adding to it. If you’re a new engineer and you have to work on it, you might be able to talk to the people who worked on it before you and find out how their design was supposed to work. There may be notes or designs generated as they worked on it. And so-on.

    It might take you months to fully understand the system, but whenever there’s something confusing you can find someone and ask questions like “Where did you…?” and “How does it…?” and “When does this…?”

    Now, imagine you work at a railroad and show up to work one day and there’s this whole mess in front of you that was laid down overnight by some magic railroad-laying machine. Along with a certificate the machine printed that says that the design works. You can’t ask the machine any questions about what it did. Or, maybe you can ask questions, but those questions are pretty useless because the machine isn’t designed to remember what it did (although it might lie to you and claim that it remembers what it did).

    So, what do you do, just start running trains through those tracks, assured that the machine probably got things right? Or, do you start trying to understand every possible path through those tracks from first principles?





  • Unfortunately, there are only 3 companies developing browsers right now: Google, Apple and Mozilla.

    Apple’s browsers are only available on Apple platforms. In fact, if you’re on iOS you have no choice, you have to use Safari. Even browsers labelled as “Chrome” or “Firefox” are actually Safari under the hood on iOS. But, on any non Apple platform, you can’t use Safari.

    Google is an ad company, so they don’t want to allow ad blockers on their browser. So, it’s a matter of time before every kind of ad blocking is disabled for Chrome users.

    Firefox is almost entirely funded by Google, so there’s a limit as to what they can do without the funding getting cut off. They seem to be trying to find a way forward without Google, but the result, if anything is as bad as Google if not worse:

    “investing in privacy-respecting advertising to grow new revenue in the near term; developing trustworthy, open source AI to ensure technical and product relevance in the mid term;”

    https://blog.mozilla.org/en/mozilla/mozilla-leadership-growth-planning-updates/

    All these other browser people like are basically reskinned versions of Chrome or Firefox. They have a handful of people working on them. To actually develop a modern browser you need a big team. A modern browser basically has to be an OS capable of running everything from a 3d game engine, to a word processor, to a full featured debugger.

    It looks like it’s only a matter of time before there will be 0 browsers capable of blocking ads, because the only two companies that make multi-platform browsers depend on ads for their revenue, and both of them will have enormous expenses because they’re obsessed with stupid projects like AI.


  • Yeah, I love that one.

    “Try” is too hopeful. “fuck_around” makes it clear that you know what you’re doing is dangerous but you’re going to do it anyhow. I know that in some languages wrapping a lot of code in exception blocks is the norm, but I don’t like that. I think it should be something you only use rarely, and when you do it’s because you know you’re doing something that’s not safe in some way.

    “Catch” has never satisfied me. I mean, I know what it does, but it doesn’t seem to relate to “try”. Really, if “try” doesn’t succeed, the corresponding block should be “fail”. But, then you’d have the confusion of a block named “fail”, which isn’t ideal. But “find_out” pairs perfectly with “fuck_around” and makes it clear that if you got there it’s because something went wrong.

    I also like “yeet”. Partly it’s fun for comedic value. But, it’s also good because “throw” feels like a casual game of catch in the park. “Yeet” feels more like it’s out of control, if you hit a “throw” your code isn’t carefully handing off its state, it’s hitting the eject button and hoping for the best. You hope there’s an exception handler higher up the stack that will do the right thing, but it also might just bubble all the way up to the top and spit out a nasty exception for the user.