8,375 karma · joined November 4, 2010
And nor is an LLM generating text just "copy/pasting a Wikipedia article", you'd think people on HN would be smarter than that at least.
If all Joe Smith is going to do is cat $(which claude) to his LinkedIn, then he'll deserve the poor results he gets from it, but we shouldn't mistakenly say that this will be because LLMs simply cannot write. It would be just as dumb for Joe Smith to do with with a professional human ghostwriter.
Of course, with real books we do have the problem of ghostwriting, where an author willingly writes for a book that will be published under someone else's authorship. That may be where things end up here, with requirements to acknowledge sources, whether ghostwritten for you or written by others.
Writing is a way humans communicate ideas. It's not the only way humans communicate ideas. And now, it's not only humans who communicate ideas, we just saw with the OpenAI HuggingFace hack how AI agents were able to communicate amongst themselves by using various hacked websites to opportunistically write notes for later agents to use.
All that "X is a thing only humans do" type of circular definitions will buy you, is to expand the definition of what humanity is. And I doubt that's really what you think.
But you can now have multiple zero-sized types as siblings in a struct or class that can be zero-sized, the restriction is that they do have to be different types.
C++ actually did end up evolving the ability to define a zero-sized class without a unique memory address, but mostly to allow optimizations like the empty base optimization to apply in other situations where it could make sense, especially with templated or constexpr code.
If you have a value of the type itself (not a pointer or reference), then polymorphism doesn't even enter the equation in C++, even if you initialize from a derived type.
E.g. in this code:
Base b(m_catalog.makeDerived());
b.call_virt_func();
Even if `call_virt_func` is declared virtual, it will be `Base::call_virt_func()` that is called here, guaranteed. From a language perspective, we already know that `b` is a `Base`, you literally declared and defined it that way.Runtime polymorphism is therefore only a game for pointers or references; it is the process of resolving the indirection that even allows for polymorphism to become a thing in C++. But this means that the compiler cannot know the actual type at compile-time for a polymorphic type, unless it can perform devirtualization as an optimization pass.
So although C++ will certainly allow you to define a class method that returns a virtual type by value (and not by pointer or reference), even for complex types, it is almost certainly a bug to do this unless you know for sure what the type will be statically, at compile time. Because the object you create as the return value will be forced to be the return type declared at compile time, "forgetting" the fact that it was created from a type deeper in the inheritance chain. This is the 'slicing problem' that was mentioned in the earlier comment.
There's a reason companies talk about "customer acquistion cost", as you generally need to pay to market your products to potential customers of them.
So free marketing can be a real cost reduction. It may not be enough to be a benefit compared to the cost of piracy, but it's hardly a made-up defense.
??? FOSS was around before that, famously so.
The rise of Microsoft made FOSS more important, but FOSS wasn't a reaction to surveillance and control, when it started even multi-user networks were practically unprotected, and it was quite easy indeed to see what other users were up to.
The phone phreaks were the ones who were worried about corporate control of comms, the FOSS people just couldn't figure out why people were paying for software with the hood welded shut when there was better software available to those willing to help contribute to it.
So when I read "3 control rods hit the bottom" what I hear is "there was an unexpected group scram", but I don't know enough about this reactor design to know if that's actually what happened, or whether it was 3 unrelated control rods instead.
3 rods inserted into the core out of the many available would have disrupted the neutron flux profile away from what the reactor is intended to operate against in steady-state, so manual shutdown is the right answer until the cause of the control rod being dropped can be figured out, repaired, tested and then the reactor restarted.
But while not typical, this kind of event has happened many times before and will again. Pretty boring IMO, which is why I agree with the non-emergency declaration by NRC.
The post laments that it's hard to find Dr. Royce's original waterfall paper. That's probably true, I have my copy from a compilation book “Ideas that Created the Future: Classic Papers of Computer Science” edited by Lewis [1].
I do agree that it's important to do things like scope out your demands of your AI agent, check-in on progress, give as clear a requirement and test cases as you can. But you've always been able to do that with agile methods, and LLMs are fast enough that you don't need to go full waterfall (and if anything it would be counter productive).
Dr. Royce's paper talks about literally thousands of pages of documentation being needed for any reasonably useful system. Good luck fitting that into even a 1M context window :P.
But the main point to thesis, that you can't just let your coders loose to do whatever and expect the right results even pre-dates Fred Brooks. I'd argue it goes all the way back to the beginning, to the comments about Baggage's computing machine where British politicians asked if it would generate the correct answers even with incorrect inputs.
The answer then is the same answer today: of course not, and expecting anything different is foolishness.
If you're in construction then you need a quality drill that will carry you from one job to the next reliably. If you're just trying to do a one-off drywall repair in your house that you hope never to need to do again, maybe the $10 drill is precisely what you'd buy, if you could find it.
Of course it wouldn't land on highest quality. None of us need fans which last forever. We need fans which last long enough.
In the optimum scenario companies are able to build fans that do just that, but the quality would still not be highest quality compared to what would be possible. And nor should it, since it would force the consumer to pay for gold-plating they neither need nor want to pay for.
Even 5 people is enough to significantly narrow the uncertainty (at least, as compared to the prior hypothesis that the true change in odds is somewhere from -1 to 1).
And like a good spam filter, you don't need to be perfect, you just need to be able to turn your initiatives into a forecast of future changes if implemented, and then measure what actually does change for those initiatives you do implement. Even simple linear regression models can be useful in tracking results compared to forecasts.
Most people would probably expect that the improvement is close enough to zero to be nearly indistinguishable from it. And this is why most enterprises don't invest much in reliability work like this, because it doesn't actually seem to move the needle for customer purchasing.
Both languages continue to have examples of slightly more complicated loops that can be assumed to terminate in the absence of side effects, but `while(true)` isn't one of those any longer.
Obviously it's not a change that you'd be able to pin a specific human decision-maker (who was marginal on Teams) down as to this change being the difference between a sale or not, but nor is the change in revenue going to be a random number uniformly distributed in (-∞,∞).
If the change was revenue-neutral, the skip level would probably have been justified in seeing if the teams working that project could have found something to do customers actually care about instead.
That's just a different way of saying some people like to play games where their opponent has no chance. So your "relaxation" comes entirely at the expense of others.
Single player campaigns are a better way to accomplish this because then you can do whatever you want as far as difficulty goes.
I think that time corresponded to when monitors were smaller than 27 inches though. A "good" CRT monitor used to be 15" and at that size 1080p is certainly great.
That's why even in the nuclear Navy, as crazy as they are about reactor safety, they would train and preach continuously that "safety of ship" is more important than reactor safety, because the reactor is not safe if the ship is not safe.
That's not true, and if anything in software having consistent software delivery makes it more likely to achieve Michelin-graded level of quality, not less.
I'm not even sure I'd describe it as a monoculture either, if it was that would probably have accelerated its growth even more. Imagine where Linux would be if it were like FreeBSD in having only one distro, one libc, one set of system libs.
You're starting to see it as a server backend lingua franca but even there, there are multitudes. And there remain a great number of organizations that run on one of the BSDs, Windows, old mainframe OS, and so on.
Why is a charity supposed to be able to magically conjure sales the original seller was unable to find?
I just think if it was as easy to doing this, there's already be nothing for regulators to be complaining about.