Perl was my first language because I wanted to make interactive websites and that was the most common way to do it in the late 90s. Shortly after, everyone switched to PHP because mod_php was much faster than Perl CGI scripts.
Surely the people who had purely performance problems with Perl CGI scripts moved to mod_perl? I didn't figure out when mod_php was introduced from casual searching, but given that mod_perl is only a year younger than PHP it must've been available to almost anyone who was considering rewriting their app in PHP. So I have to imagine there were additional reasons.
Wikipedia says that this source [1] claims early versions of PHP were built on top of mod_perl, but I can't access the archive right now for some reason so I can't confirm.
mod_php was distributed w/ Apache httpd, so it was "already installed". mod_perl needed to be installed manually, so it posed immediate friction, if not a complete freeze-out, depending on the situ. I believe that was why PHP became popular.
Systems with mod_perl (or just Perl allowing normal CGI) installed, especially shared hosting was so common as to be the norm in the late 90s and early 00s.
I think instead the biggest reason PHP took off was it had far less deployment friction and better aesthetics than Perl did on machines where you didn't have admin access, basically ever shared web hosting ever.
Typically CGI scripts on shared hosting were limited to explicit cgi-bin directories that had +ExecCGI. At the same time hosts would often not enable mod_rewrite because it could get computationally expensive on hardware of the era.
This all meant that all your dynamic content had to live at some "/cgi-bin/" path. It could be difficult to have a main landing page be dynamic without an empty index HTML just having an HTTP-Refresh meta tag to your "/cgi-bin/" path.
Contrast with PHP which would be processed from any directory path and was its own built-in templating language. It was also usually included in the DirectoryIndex list so an index.php would act as a directory index leading to cleaner URLs.
In the era when deployment mean MPUT in an FTP client those small differences made a difference for people trying to make their first dynamic website and look "professional".
In some sense, "no one wants to be advertised to" is similar to "no one wants to pay for stuff". Like yeah it'd be nice if my groceries were free, but that's not very realistic, the grocery store would just close if they had to give everything away. Advertising is similar - a cost we pay so that websites can make some money in exchange for their services. Most ad supported websites would just disappear without them.
In some sense I agree but there is a fundamental difference. I pay for my groceries because I have the fundamental need for sustenance, and that requires land and toil. I have neither and therefore I pay someone else; but for me to survive it is necessary that _someone_ perform that work.
My need for websites is much less predominant and really I could live without. So of course I bounce when mildly interesting websites ask to host cookies on my browser or want me to create an account and enter my card details.
If one considers maximizing utility the goal of economic science, then this is in fact good, as it redirects me to more useful venues like doing chores I'd been putting off instead of mindlessly scrolling online. Some metrics such as GDP however might suffer.
Yeah, this article says the 2023 price of a new Model Y was $48k, and then in 2024 it was worth only $33k used.
But in 2024 I bought a brand new Model Y for about $33k, after factoring in all the incentives/rebates. So if anything that $33k used price sounds high.
Reality is, prices came down a lot, and also depending on how incentives/rebates are factored in, the "sale price" might be fiction.
Same with other brands too. Back then you saw some companies like Hyundai claiming their EVs were really worth like $60k MSRP, and then turning around and leasing them for $300/month with $0 down. In some states people were leasing brand new EVs for $100/month with $0 down, or less.
Now with the federal rebate gone and states removing at least some of their incentives, the numbers might start to look a little more normal.
In NJ it goes further and the poorest towns have much better funded schools than average. Been that way for decades. Zuckerberg even gave us an extra $100 million just for fun. None of it has affected the disparity in outcomes.
Also, I attended a university in Newark NJ. Our city campus was adjacent to a Newark public high school. If you walked on the nearby sidewalk, you had to watch out for items being thrown out of the upper story high school class rooms, such as chairs and even desks. So I assume the teachers at that school had their hands full.
A friend's son just started as a teacher in a middle school in a low income district in NJ. On back to school night, for one of his classes, not one parent showed up. So, yeah, the outcomes are dependent on more than money.
It says "popular mobile and desktop browsers" but doesn't include the most popular desktop browser, Chrome? I know it has Chrome for Android, but desktop Chrome supports some extra stuff (Shared Workers, File System Access API) which makes it basically the best browser for PWAs. Feels like that level of popularity and quality should be represented somewhere.
Biggest problem for me as a PWA dev is how eager mobile browsers are to delete your local data, which is not part of this scorecard. I guess that's tricky to quantify, but basically they all suck but Safari sucks more.
If they were for some reason doing `npm install` rather than `npm ci`, then `npm install` does update packages in the lock file. Personally I always found that confusing, and yarn/pnpm don't behave that way. I think most people do `npm ci` in CI, unless they are using CI to specifically test if `npm install` still works, which I guess maybe would be a good idea if you use npm since it doesn't like obeying the lock file.
How does this get repeated over and over, when it's simply not true? At least not anymore. npm install will only update the lockfile if you make changes to your package.json. Otherwise, it will install the versions from the lockfile.
> How does this get repeated over and over, when it's simply not true?
Well, for one, the behavior is somewhat insane.
`npm install` with no additional arguments does update the lockfile if your package.json and your lockfile are out of sync with one another for any reason, and so to get a guarantee that it doesn't change your lockfile, you must do additional configuration or guarantee by some external mechanism that you don't ever have an out of date package.json and lock. For this reason alone, the advice of "just don't use npm install, use npm ci instead" is still extremely valid, you'd really like this to fail fast if you get out of sync.
`npm install additional-package` also updates your lock file. Other package managers distinguish these two operations, with the one to add a new dependency being called "add" instead of "install".
The docs add to the confusion. https://docs.npmjs.com/cli/v11/commands/npm-install#save suggests that writing to package-lock.json is the default and you need to change configuration to disable it. The notion that it won't change your lock file if you're already in sync between package.json and package-lock.json is not actually spelled out clearly anywhere on the page.
> You've partially answered your own question here.
Is that the case? If it were ever true (outside of outright bugs in npm), it must have been many many years and major npm releases ago. So that doesn't justify brigading outdated information.
I mean, it's my #1 experience using npm. I never once have used `npm install` and had a result other than it changing the lockfile. Maybe you want to blame this on the tools I used, but I followed the exact installation instructions of the project I was working on. If it's that common to get it "wrong", it's the tool that is wrong.
My bad, it really annoyed me when npm stopped respecting lockfiles years ago so I stopped using it. That's great news that they eventually changed their mind.
However in rare cases where I am forced to use it to contribute to some npm-using project, I have noticed that the lockfile often gets updated and I get a huge diff even though I didn't edit the dependencies. So I've always assumed that was the same issue with npm ignoring the lockfile, but maybe it's some other issue? idk
Well there are other lockfile updates as well, which aren't dependency version changes either. e.g. if the lockfile was created with an older npm version, running npm install with a newer npm version might upgrade it to a newer lockfile format and thus result in huge diffs. But that wouldn't change anything about the versions used for your dependencies.
Yes. As someone who's using npm install daily, and given the update cadence of npm packages, I would end up with dirty lock files very frequently if the parent statement were true. It just doesn't happen.
I can't imagine that a book written by a misogynistic author with explicit themes of female submission to male authority obtained by use or threats of physical violence would be particularly appealing to women in general
Note the phrase “sweet and steamy” from the subtitle of the very book you link. Tyrant had sexual content, yes - sweetness, steaminess and romance? Not really
Edit: the subtext I’m speaking of is of submission and domination through implicit or explicit coercion. I’m not speaking of sub/dom with connotations of mutual enjoyment and consent, as can be the case in real or fictional situations of romance in general or even specific kinks like BDSM. I may be called sexist for this but my perception is that women can and do enjoy the latter (as the popularity of books like you linked imply) and greatly dislike the former
You could block only ads from Google and Meta. Most large sites use header bidding, where Google's ads are a fallback only if no other ad company bids higher, so most ad revenue come from those other companies. And IIRC Meta doesn't participate in that at all, so for them you'd just have to block ads on their own sites.
Perl was my first language because I wanted to make interactive websites and that was the most common way to do it in the late 90s. Shortly after, everyone switched to PHP because mod_php was much faster than Perl CGI scripts.
reply