So now, very likely, both Samsung and Grammarly have access to everything you type on your phone.
278 karma · joined November 1, 2019
So now, very likely, both Samsung and Grammarly have access to everything you type on your phone.
Now, getting family/friends to stop using them has proven to be a challenge, because Alec can have quite the dry video format for those who are being told to "stop doing a thing you deem convenient, and watch this 32 minute video to see why".
I just figured I'd start some conversation on the post, since there wasn't any comments when I initially looked. For better or for worse it seems like I got people talking.
Next has a thing called Incremental Static Regeneration[0] which allows us to grab the top ~100 pages from the CMS at build time, generate the pages, then cache them for however long we want. The rest of the pages are grabbed when requested, then are cached for the same amount of time. After the time, they're re-grabbed from the DB, then re-cached. Overall I think we're down to around 5-10% of the way things were done before, which was -- you guessed it -- hit the DB on every page load _just in case_.
Sit the Next.js site behind CloudFlare, and then we also don't really pay data transfer costs. Our servers are just low-tier GKE nodes, and we run around 3k/visitors at any given time, sometimes spiking up to 8k concurrent.
[0] https://nextjs.org/docs/basic-features/data-fetching#increme...
For OP, I'd also be interested to see the benchmarks between this £4 server, and a £8 or £10 one, same stack.
- Make sites that are fast by default: Small bytes sent over the wire, beyond just initial page load, too. Yes, that does mean that your giant Google Tag Manager/Analytics/3rd party script is bloated. Reach out to 3rd parties about reducing their payload size, it's saved me several MB over the years. Also, not writing efficient CSS is a huge killer when it comes to byte site. Devs shouldn't "leave it just in case" when it comes to code, you have version control for a reason. And when a new feature comes out, clear out the old cruft.
- Avoid unnecessary DB calls: Obviously you need to get the data onto the page somehow, but if you can server-side render, then cache that result, you're reducing the overall calls to the DB. Also, optimizing queries to return only-what-you-need responses helps reducing total bytes over the wire
- Balance between Server and Client side: Not only are servers getting more powerful, so are client devices. Some logic can be offloaded to clients in most cases, but there needs to be a balance. Business-critical logic should probably be done server side, but things like pagination & sorting -- so long as they client will likely see or use all the data -- is fine in my book. Having 2000 rows of JSON in memory is totally OK, but rendering 2000 at once might cause some issues. Again, balance
- Hopping on the latest-and-greatest bandwagon isn't the best: Devs hate re-writing the site every 6 months, and really the newest framework might not be the best for your use case. Keep up to date with new technology, but saying "not for me" is fine.
- Don't let (non technical) managers make technology decision: See above. More often than not, C-levels want to use shiny new things they read an article about on LinkedIn once, no matter if it fits the needs of the company or not. Thankfully I've only been at one place that was like that, but while I was there it was hell. Current VP was an original developer on the site back in the early 00's, so he knows how to deflect BS for us. That VP also knows that he's outdated in his knowledge by now, so he trust the Devs to make technical decisions that are best for the company.
Not all the above apply to a hobby-blog style site, but I wasn't referring only to OP's site in my original comment. I understand that not everyone needs to feed into "fucking Internet gatekeeper"s as you described, but the fact that they provide valuable services is undeniable. They make a complex operation -- one that could mean the difference between a company being able to sell their product or not -- simple.
(Obviously the sales thing doesn't apply to OP)
As you said in your post, adding caching to your site increased your throughput by ~20% (or +10/req/sec). What you and other sites seem to lack is a more distributed caching, a la CloudFlare, S3 CloudFront, Azure CDN, etc. Those last two only really work well for a static site, however as mentioned in your post that's essentially what you're serving.
While I'm all for having a free-as-in-freedom hosting solution and keeping things lean, the internet is a fickle beast, and nothing looks worse for a company who posts on HN when their technology-oriented site can't handle a few thousand requests per minute. (Or in this case, when a blog claims to handle 4.2M requests a day -- 2.9k req/min)
I had no idea what the content of the site was (besides the title from HN) and around the 50% download point, I had already lost interest. I'm clearly not the only one who loses interest this quick [0][1][2].
Also, as others have mentioned in root level comments, the design & layout of the content within is also severely lacking, which makes waiting for the load to occur even less worth it.
---
[0]: https://www.pingdom.com/blog/page-load-time-really-affect-bo... (2018)
[1]: https://blog.mozilla.org/metrics/2010/03/31/firefox-page-loa... (2010)
[2]: https://www.thinkwithgoogle.com/marketing-strategies/app-and... (I know it's Google, but to be fair they have more data on this than most other companies, despite their obvious desire to sell more of their product/services related to it.)
Exactly. There are countless JS-powered sites that for any multitude of reasons don't want it to be easy to extract their code. Ignoring whether or not that's "right" or ethical, those sites are fully within their rights to make it as difficult as possible to duplicate the work that they've put in to create their platform. I would imagine if you asked most C-level and legal teams "is the code on your website something you want people to be able to copy at will?", 95%+ would say they don't want that to be possible, and you might even spur some of them to force their developers to spend time making it _even harder_ to copy.
Unfortunately, the web isn't the free/public/open-source utopia it once was, because a large majority of business takes place online. Sure there are niche sites that still cater to such ideals, but a majority of the population couldn't give a rat's ass if it's easy to copy the JS from Facebook/Amazon/YouTube/etc.
Anecdotally, most people hated the Steam Controller's touchpads, and I'll admit I wasn't a fan at first either. But the ability to remap them to be: sticks, trackballs, d-pads, bring up (multi-level) radial menus, etc. is an absolutely killer feature.
I think one of the reasons they "failed" is because they absolutely were not plug-and-play, because to truly utilize their full capabilities, you had to configure them per game.
I'd take "generally highly available" vs "trusting my local copy" almost all the time. And as for using something like a Git'd Excel document: most people won't do that, and Github can go down, too.
Just because Google Drive isn't perfect, doesn't mean it's not better/easier/more user friendly than what has been the standard for years.