HackerTrans
TopNewTrendsCommentsPastAskShowJobs

throwaway77384

no profile record

comments

throwaway77384
·2 anni fa·discuss
I don't know if they are listed on the EU alternatives website, but for mail, I find Migadu to be excellent. I think they are Swiss.
throwaway77384
·2 anni fa·discuss
I couldn't agree with you more. I love VR as a concept, but the giant headsets are just unusable. Hence, I research this frequently and someone appears to finally have realised this:

https://www.bigscreenvr.com/

Linus Tech Tips did a review of it, so it's real. I have high hopes.
throwaway77384
·2 anni fa·discuss
I learned vanilla Javascript first. Spent a few years building various frontends / websites that way.

Then came React. I thought knowing Javascript meant I'd know React. Oh boy was I wrong.

I started around the time that class-based components were replaced with hooks and function-based components only.

That meant I had to work in the latter, while all the SO posts were about the former, so I couldn't find any solutions to problems I was facing.

About three years in, I still couldn't explain to you wtf a hook is. I've looked at countless tutorials, used countless hooks from various libraries, but I've never felt the need to make one. Which tells me that I still don't know what problem is fundamentally solved by using / making a hook specifically.

All I understand is writing a function that returns a value or a function that returns a bunch of JSX. I've never needed some sort of mystical third concept that somehow requires me to call it 'use'-something, before I'm allowed to call other things called 'use'-something within it. I wish I could somehow wrap my head around it.

Anyway, learning React, I felt I spent more time trying to work out why things sometimes got updated and sometimes not. It felt insanely arbitrary.

Then comes the joy of trying to force the incredibly non-deterministic rendering of the stack of components into something reasonably deterministic. If you have to call multiple endpoints and track the state of those calls and ensure a component only renders when that data is available in its correct form (which has to happen in a specific sequence), you will spend what seems like an insane amount of time forcing something that is inherently non-sequential into executing sequentially. Seems wild to me.

The amount of time some component tries to access 'undefined' is just astounding.

How about closures? It took me so long to finally understand that useEffect doesn't have access to updated state variables unless they are in the dependency array. So much time spent banging my head against the wall, wondering why my variable is always 'behind' by exactly one state update.

Let's assume you've managed to set all this up, you suddenly find out that React literally re-renders the ENTIRE tree of components sitting on top of any child component, every time anything changes.

Let's imagine a form with multiple inputs:

<form> <input1> <input2> <input3> </form>

If I make a change to input2, the form and all the other inputs are re-rendered. Unless, of course, I wrap each and every input in React.Memo(). If I want my form to handle errors properly, for example by using react-hook-form, I then need to add a custom compare-function for each prop handed into the input, to ensure it updates correctly, but only when needed. What used to be a one-liner <input> has suddenly become 15 lines of code dedicated to working out when to re-render this one input instead of the entire form.

I still haven't used useCallback successfully anywhere in any of my applications, because I'm still not sure I understand what it does or how it works.

Suspense makes sense. Error boundaries are still elusive. I've tried implementing them, but most of the time the only error boundary that really triggers is the one all the way up the tree, which is only one step better than crashing the whole interface when a component encounters an error.

Anyway, so you've finished that whole journey, good job. Enter Next.js. Guess when I started using Next.js? Yup, right around when page-router became the app-router. Same story again, all SO issues are about page-router, so none of the problems I'm encountering have been addressed yet.

How about initialising a Next.JS app in dark-mode to start with? Not possible, because half your app is now server-based components that don't have access to cookies, so it always flashes white first before jumping to dark mode. I suppose I could build my app dark-mode first or save the user's preference in the DB.

Sometimes, it is nice to just store something in localStorage. But, persisting state with Zustand is suddenly hopelessly broken and no amount of hacks around delaying hydration have worked for me so far.

How about changing meta-data of pages, especially if the meta-data relies on a fetch call? How about the fact that the data from that fetch call can't be used in your components, meaning that the fetch call has to be repeated in your component? (But don't worry, Next.js includes black magic to deduplicate fetch calls, pinky-promise that we won't hit every endpoint twice, blowing up your free-tier quota on [insert platform here]).

Caching? Completely arbitrary. Some parts of your app will fetch new data from the server every time, other parts of the app will never update correctly. All depends on who's doing the fetching. If it's a 3rd party service (say, google firebase), then you have to force your api-routes into dynamic rendering before you actually see updated data coming back from fetch calls.

To this day, I haven't managed to get caching working predictably in my app. I literally have no idea when things will revalidate and when not. I've managed to force it into never caching, but a combination of caching when I need it to cache or revalidating every time seems to be impossible to achieve.

So now I am sitting on top of a framework, for a framework, for Javascript, where I neither know when components will update, nor when data will be cached, all because these things are hiding behind magic that is extremely poorly documented (and never seems to include real-world examples of sufficient complexity). It's quite a frustrating experience.

I wouldn't know what the solution to this is. Feels like we've arrived here through years of developer effort and I don't feel qualified to judge it. Therefore, I just put up with it and hope to learn more about it as I build more apps.
throwaway77384
·2 anni fa·discuss
[flagged]
throwaway77384
·2 anni fa·discuss
I wonder whether people who defend piracy also defend making money with it.

That tends to be where I draw the line (except for perhaps very extenuating circumstances). For me, piracy without profit motive is literally just knowledge / information sharing. I feel as though copyright basically shouldn't exist in cases where someone doesn't profit from reproducing / copying / distributing some kind of content.

As soon as someone starts making money with someone else's creation, it becomes a crime in my view.

I understand that there is nuance to this...what if someone runs a torrent site and needs funding to keep running the site, thus technically creating some kind of cash-flow / revenue stream. I don't really have the answer to that (except perhaps that we should all just use open-source DHT-based torrent searches, so no funding of centralised sites is needed?)

But yeah, in cases where someone is this blatantly operating an IPTV service, it's obvious why they got prosecuted.
throwaway77384
·2 anni fa·discuss
Thanks for the information :)
throwaway77384
·2 anni fa·discuss
Thank you!
throwaway77384
·2 anni fa·discuss
What is RAG in this context? I only know it as red, amber, green...
throwaway77384
·2 anni fa·discuss
Very interesting. Another Next victim here. One of my anecdotes is the bonkers caching / fetch deduplication. Yes, set cache: no-store. But that only works for fetch requests. If you have a 3rd party lib doing the fetching (say, Google Firestore), then you have to declare export const dynamic = 'force-dynamic' at the top of your route segment: https://nextjs.org/docs/app/api-reference/file-conventions/r...

That behaviour wasn't documented when I got started with NextJS 13...imagine the fun I had trying to work out why I can't get updated data from the server. It was nuts.
throwaway77384
·2 anni fa·discuss
You are right, my statement was too extreme, borne from frustrations over the degradation of many online services by profit-motives. I'm sure online dating platforms, so long as they get user profiles in front of user eyeballs, are inevitably going to lead to people getting into relationships. Much like with Facebook or, say, news media, the algorithm has a specific purpose and, as we see rather often, that purpose is not "make the user happy", it is "keep the user engaged by any means". So, for a news media website, the purpose is no longer "deliver the best news", but "deliver the most engagement". And that process can be automated by changing content subtly and measuring again, until the content pulls the most attention.

I guess with Tinder, that's not necessarily how it works? Do they have ads on there? No idea. But again, I wouldn't be surprised if there is some kind of data collection / trading going on. But who knows, I have no evidence of this and wouldn't want to badmouth Tinder just because it's trendy to bash big platforms. Please consider this an attempt at making a more balanced comment :)
throwaway77384
·2 anni fa·discuss
It's almost insulting how predictably this happened. I do wonder how much more money they made by selling information instead of just having a paid subscription model.
throwaway77384
·2 anni fa·discuss
I was one of those people who got into online dating just at the transition from "Only weirdo losers do online dating" -> "The only way to meet anyone is online dating".

So for about two years, I was there, on OKC as sooooo many brand new people discovered it, in a huge city, in my mid-twenties. It was an incredible time. I met so, so many interesting people, who were so similar to me. I couldn't believe it. It was all free, too.

No lasting relationships ever came from it. I met my partner of 10 years at work eventually.

I've never been on Tinder or any other online dating platform, but it sounds like the industry (it is now an industry...) has gone through the same cycle of VC-driven monetisation, removing all incentive for the platform to function correctly in the user's interest, much like any big platform nowadays.

So, I guess we'll need some kind of online dating fediverse to fix this. I'd recommend copying exactly how OKC worked. It was the best approach I've ever seen. But also the only one ;)
throwaway77384
·2 anni fa·discuss
So glad to see someone else say this. NextJS 13 was (is) a complete an utter disaster. I took on a reasonable-size project around that time and the documentation was incomplete, no library worked on it. Mystery caching and fetch-call deduplication all over the place. It was horrific. I wonder if things have improved since.
throwaway77384
·2 anni fa·discuss
Yup, I couldn't agree more. His music from back in the day is so incredibly unique and nobody has made anything like it before or since. It's impossible to find anything like it. Unfortunately he seems to no longer want to make music like that. If I was a billionaire I'd write him a blank cheque to make more music like his old stuff. But, I'm no musician, maybe he literally can't anymore. I don't know how it works, or how insulting the mere notion would be to him.
throwaway77384
·2 anni fa·discuss
Old Amon Tobin was just the best. At the end of the day, Slowly, Journeyman...some of the best music I have ever heard.

His stuff with the London Symphony Orchestra is bonkers (https://www.youtube.com/watch?v=ggl_pWkbEoc).

All of his recent stuff isn't quite my cup of tea, but that's just the nostalgia factor speaking. I guess anyone who discovers a musician during one of their eras may not necessarily like their other eras...which is more of a condemnation of the listener, rather than the musician, perhaps :)
throwaway77384
·2 anni fa·discuss
Not from a CSP (content security policy) perspective. Which can sometimes make all the difference.
throwaway77384
·3 anni fa·discuss
That is my main issue as well. What is mshell? Why do I have to install it on my remote? Surely a dependency like that should be pointed out front and centre...
throwaway77384
·3 anni fa·discuss
I seem to only be given a selection of 3.5 type models if following those steps.
throwaway77384
·3 anni fa·discuss
So, how close are we to having to compile our own browsers to ensure we can still use valid certificates? And which CAs will be trustworthy after this?
throwaway77384
·3 anni fa·discuss
Next.js is such an odd experience. On the one hand, I've built three apps in Next.js, a business directory on Vercel with a separate (Firebase) DB, a blog (Cloudflare, Next on Pages) which pulls from an API and a little calendar management app (Vercel), which also only pulls from an API. The speed at which I could get something up and running was astounding. Before Vercel I tried Google's Firebase hosting, which was so hilariously bad that I switched to Vercel, where everything just worked. You'd expect that from the makers of the thing. However, I was wary of vendor lock-in. When Vercel decides to arbitrarily break something you relied on, you are at their mercy to figure out when your app will run again.

And this is where things get hairy. The Next.js documentation is sparse. So you either get lucky and someone else has done the guesswork to figure out how to do the most basic things in Next.js (for example the transition from 12 to 13, aka pages-router to app router was ROUGH...you could only find SO issues related to 12 and all the libraries and structures you were used to had all changed in subtle ways).

Caching is another one of these things. There are fetch calls in some routes in my app that get cached no matter what. I've tried every which way to get the damn thing to stop them caching (the most obvious one being the no-store header), but to no avail. It caches and I can only get it to stop by redeploying. And no, purging cache from the Vercel dashboard doesn't fix it either. Only a redeploy will get me updated data from the DB. It's bizarre.

And so the story goes on. It's super easy to get up and running. There are many 'aha' moments, where you can see that a ton of work has gone into DX. So much so, that I really try to use Next.js where I can. However, when you run into problems, they are usually more difficult to solve than with React. And they are subtle and not infrequent.

Don't get me started on debugging. Since Next.js is sort of 'backend' to a large degree (which, in Google's and Cloudflare Page's case means edge-functions), trying to tease a meaningful log that isn't severely character-limited out of either service is very difficult. Error messages in the frontend are useless to an astounding degree.

So, it seems there's a lot of work to be done. Tread carefully, as it's very enticing to have this quick-start, but I'd hesitate to use this for anything too serious, as things will break for no reason and there will be issues that are nearly impossible to solve and I wouldn't want clients emailing me while I'm dealing with BS I simply wouldn't have had on any other stack.