ELI5 how P
, NP
, NP-Complete
, and NP-Hard
work? If you have a video you'd recommend that works too
dfyx @ dfyx @lemmy.helios42.de Posts 6Comments 433Joined 2 yr. ago

Never said that, never meant that.
When I said "inner child" I meant his own capability of leaving his adult responsibilities behind for a while in favor of doing things that society as a whole deems childish. Indulging in certain hobbies, acting a certain way. I can't find the right English word right now. In German we might call it being "unbeschwert", so maybe "unburdened".
I was specifically replying to the passage that he should have spent those 13 years in age difference growing as a person to an extent that he shouldn't have much in common with a 16-year old anymore. And to that I ask: why? Must every adult be a joyless, mindless worker drone who can't enjoy the things they enjoyed when they were 16? I'm happy to discuss if the relationship OP described might be problematic because of a power dynamic and that's been done to death in this thread. But saying he isn't allowed to feel connected to someone younger than him based on shared interests or a need to escape his adult responsibilities for a while feels bitter and judgemental.
None of this has anything to do with me labeling anyone as an actual child.
Edit: Maybe a picture says more than a thousand words so let me link to my favorite XKCD: https://xkcd.com/150/
From my personal experience this "ought to be" is the problem. Once you get your first job, everyone expects you to drop everything that you're passionate about and start behaving like an adult. That can be overwhelming and I wouldn't judge anyone for wanting to keep that cozy feeling of being young for a bit longer. And as long as all important responsibilities still get taken care of, why not let adults be as childish as they want, whenever they want?
Oh, don't get me wrong. It is a bit weird and concerning. But weird and concerning alone are not enough to stop something that's legal and at least for now seems to work pretty well. And like you said, not much they can do about it. The best course of action is to deal with it, be as accepting and supportive as they can and be prepared to help if things do go wrong. Everything else will make things worse.
So let me summarize:
- He is happy
- She is happy
- He is very open about it and introduced her to you
- She is everything you could wish for (except her age)
- Her parents are aware that she's dating someone older and are fine with it
- It's legal
- He doesn't have a history of abusive relationships
- They have at least some shared interests
And yet you still can't give this relationship a chance based on the vague feeling that you "just think it’s inappropriate"?
While I agree that an age gap this big - especially if one is only 16 - is a red flag and should be watched carefully, you're against it for all the wrong reasons. As long as she is safe and they are both happy, give them a chance. Be prepared to step in if - and only if - there are signs of either of them being taken advantage of. Otherwise, support them the same way you would support them if she was ten years older. As long as everything stays healthy and legal, nothing you could say would make them reconsider their relationship. Criticism will only lead to him not telling you about his life anymore. To you not noticing if something does go wrong. To him not feeling comfortable breaking up with her when they are not happy anymore. To her not being comfortable breaking up with him when they are not happy anymore.
Approach this carefully and with empathy. Everything else will alienate you from your son and might drive him to bad decisions.
Dude, what did you do in those 13 years to not grow as a person, ick. I can definitely understand why it would change your perception.
And comments like yours are the exact reason why he probably feels like he must protect his inner child against all odds. From what OP tells us, he has his professional life under control, so let him spend his free time however he wants. See my other comment for details.
They broke up amicably because she wanted marriage and kids, he didn’t.
I think that's the exact point why he now dates someone much younger than him. Not that she wouldn't want those things specifically but she is his escape from being an adult. I've been there, broke up a relationship when I was 30 for the exact same reasons (no, I didn't date a teenager afterwards). Being that age is scary, especially these days. You have less and less time for your hobbies, you're expected to deal with a job, bills, taxes, bureaucracy, family planning, and the future in general. At the same time, even if you're successful in your job, you have to worry if you'll ever reach your parents' standard of living because real estate has become incredibly expensive.
In that phase of life, some people will cling to every opportunity to preserve their inner child. A silly hobby, quirky clothing... or a person around whom you can be immature. For me, the solution was to spend my vacations with a couple of friends who feel the same and just make our own safe space where we can be as immature as we want for a week. For your son, it was getting a girlfriend who is much younger than him. She won't mind if he acts like a highschooler because she is one herself. He can hang out with her and her friends to stay in that less complicated world for just a few years longer.
He needs that. And he needs you to accept that side of him, even if you don't accept his relationship. Make sure that when he comes home, it's okay for him to spend a day on the couch playing video games, watch Disney movies and forget about all his responsibilities.
What? That really shouldn't be the point for anyone to worry about.
The important thing is to make sure she's safe. As long as that is guaranteed, everything else is his choice and his responsibility. He is an adult, he is allowed to decide for himself if he cares about what society as a whole and his parents in particular think about him.
Shaming him and pressuring him into leaving her will only make him stick to her even tighter, just to spite everyone else. And that might actually go wrong when the relationship eventually breaks apart and he can't accept that because he doesn't have anyone else left.
Well, have you tried asking him why he picked her? Note my choice of words here. Specifically don't ask him why he didn't pick someone else but what he likes about her. My personal guesses (!) are: they share an interest in jazz music, they had a good time together at the festival and she doesn't expect him to act like society imagines "an adult": she lets him make up for something he missed when he was younger.
About her being hurt: he's your son, you know him better than we do. Do you think he's the kind of guy who would do that? If not, look out for signs that it might actually be happening instead of relying on your expectations. Stay in contact with her parents. At the same time, make sure she's comfortable talking to you. That way you will know if something happens. But please don't accuse either of them of something that isn't actually happening.
From your post, I can't quite decide what worries you most about this relationship... I've written and rewritten this comment multiple times because of that.
The usual concern with such an age gap would be that he might take advantage of her and her lack of experience. That's a valid concern that should be addressed. But It doesn't seem to be what's bothering you.
With you starting your post by telling us about his ex who is completely irrelevant to this story and your relationship with her, then later list off how great your son is and that "it’s not like he’s lacking options"... I can't shake the feeling that your problem is more with him having a partner that could be considered "below his own status". It feels like you would react just the same if he dated someone closer to his age but not as successful or good-looking. And to that I must say, that's none of your business. Let your son love whoever he wants to love. Let him make his own decisions and when it comes to it, his own mistakes. They obviously share some interests and he's old enough to decide if she's "good enough" for him.
That's the reason why I like C#, ASP.Net Core and EF Core so much. A simple CRUD app can be written in under 10 minutes and easily deployed in any form from a self-contained binary to a docker container to whatever eldritch horror lurks behind Azure or k8s. Personally, I run docker swarm mode for my stuff because it makes automated deployment super easy, kind of like a leaner k8s but if I wanted, I could just drop a binary on any windows, linux or macOS machine without needing to install any major dependency apart from my database.
Edit: of course, ASP.Net Core has its downsides too. Especially when it comes to auth stuff. I wish I could have something as simple as devise + cancancan in old versions of Rails.
It's "all" in the sense that it's everything the instance knows about, in contrast to "this server" which is only content from users that are registered on this specific instance. Same concept as the "all" and "local" feeds on lemmy. I agree that a better name might reduce the confusion but I can't think of a good one.
Servers not having the same content in their "all" feeds is not a bug, it's by design. The design philosophy for Mastodon (and I'd say the fediverse as a whole) is to let the users curate their own feeds instead of showing them everything or algorithmically guessing what they might be interested in. Servers will only receive posts from accounts that at least one of this server's accounts is subscribed to. Having every post federate to every server even if nobody there is interested in those posts would be a waste of resources.
Yes, that makes discovery of new content significantly harder but that's the tradeoff for being able to host your own small instance without the need for a super powerful server. I can run my instance that serves just a couple of users on a 10-year-old server that runs a dozen other things at the same time. We see the stuff we're interested in and don't have to spend disk space, processing power and network bandwidth on content none of us will ever read and neither do we have to spend those resources on sending our posts to other instances where nobody will read them.
Wanna bet if Tesla gets an exception?
タイッツー is definitely taittsuu. Twitter doesn't seem to use a katakana spelling. Your proposal of "tsuittaa" would be ツイッター. Same katakana but different order. There would be no reason to read Japanese from right to left. Might be an intentional pun though.
Edit: it's https://taittsuu.com/
They don't owe you anything. Not sex, not a kiss, not a hug, not a second date, not even a smile. If the date goes well, you will get some or even all of those but if you try to force them, you will get nothing. Sure it can be disappointing if you put in a lot of effort and get nothing back but you will have to live with that. Sometimes people just aren't compatible and sometimes a date just goes wrong because of a weird coincidence.
Be nice, even if the date doesn't go as you wanted. Open communication goes a long way and chances are that the person you're talking to is just as insecure as you are. Explain (not accuse) why you don't think this situation will work out. If you're lucky, you can turn the conversation around. If not, at least you're ending the date in a civil way. That also (and especially) applies to talking on online dating platforms. Sometimes you can tell just from a conversation that things won't go anywhere. Way too many people just drop the conversation and move on which can feel pretty rude. Be nice, explain what's up, give them a friendly goodbye and then move on.
Those rules apply to both sides. You don't owe them anything either, especially if they get rude. You should still try to be friendly in case there is a misunderstanding but try to get yourself out of an uncomfortable situation before it gets worse. Your safety is still priority number one.
Edit: some more
Don't expect a relationship to last. Chances are it won't. But this isn't as pessimistic of a tip as you might expect. Even a single day of joy can be worth it if you manage your expectations. I've had a relationship crash and burn after seven years, I've had ones that lasted a couple of months and I've had someone ghost me after the second date. And still, all of them gave me amazing memories that I wouldn't want to miss and they helped me grow as a person. Allow things to grow on their own and enjoy the process. Maybe you will marry that person. Maybe you'll date them for a few months or years. Maybe you will never get past second base but stay platonic friends. Maybe you will spend the most amazing day of your life with them and then never see them again because you accidentally spilled something over their favorite t-shirt.
Sure. I use it as a structured place to keep notes on anything that may be important later, not specifically tasks:
- Important people in my life (friends and family) with a short bio, where we met, favorite food, allergies, ideas what I could get them for their birthdays, links to their social media profiles, plans for shared vacations, maybe a few photos.
- Recipes from all kinds of sources. If they are from a video or one of those "scroll past three pages of sentimental nonsense" sites, I summarize them and translate them into German with metric units.
- Lists with interesting links about 3D printing, software development and so on. Keeping these in a wiki instead of just my browser's bookmarks list allows me to better categorize them and add notes.
- A list of open questions and project ideas that I can't research right now like "Where is the best place to get custom printed LEGO minifigs?" and "Why do the zfs drives in my home server sometimes have problems waking up from sleep?"
- Lists of interesting products/books/movies/... that I might buy/read/watch/... at some point
- Some writing stuff: D&D campaigns, short stories, diary-like entries
- A list of all computers in my household with hardware specs, operating system and so on
All of those get put into categories and the categories are displayed on the main page via the categorytree plugin. The nice thing about having a wiki is that you have a lot of options for linking or embedding related content while still keeping it somewhat organized.
Just because you have IPv6 enabled doesn't mean you don't have IPv4. Both can coexist on the same network and the same device so your router can be 192.168.0.1 and some IPv6 address at the same time.
On top of that, many routers can be reached by a well-known hostname or domain, depending on their manufacturer. For example, AVM Fritz!Box routers (extremely popular in Germany) automatically resolve http://fritz.box/ to their own IP address no matter what that IP address is.
In the end, read the manual or the sticker on the device, same as you would have to do with IPv4 to figure out which subnet it is configured with.
I'll give it a shot. Not quite ELI5 but "Explain like I know what a phone number is". For the most important answer, see the last paragraph.
IP addresses are a bit like phone numbers. To send data to some computer, your computer attaches that number and sends the data packet on its way. With IPv4, an address is four bytes long, usually represented as four numbers from 0-255 separated with dots. That gives us a bit under 4.3 billion possible addresses which seemed enough when the system was invented and larger organizations could even reserve entire address ranges and some ranges got reserved for special purposes (for example, all 127.x.x.x addresses mean "send this to myself" while 192.168.x.x and 10.x.x.x are meant for local, non-public networks). Reserving these ranges is convinient when you need multiple machines connected to the internet but is very inefficient as these ranges need to be a power of two in size (256 is common), so you may get more addresses than you need and the rest stays unused.
The first solution was "Network Address Translation" (NAT). Basically, every household or organization gets a single public IPv4 address and every device on your network has a private address. On outgoing connections, your router replaces the (private) sender address with its public address and remembers which private address belongs to that connection so it can correctly forward any replies. For incoming connections, the router needs a list of rules to tell it what to do. For example something like "Everything on port 80 goes to 192.168.0.42". This worked for a while as most people make only outgoing connections and even many organizations can simply decide locally what to do with an incoming connection based on the received data so they wouldn't need multiple addresses.
After a while, it was clear that even with this workaround we would run out of addresses sooner or later. Providers tried giving their customers a different address every time they connected to the internet so they could reuse the address for someone else when the customer disconnected. This worked well when people only connected when they needed it but these days we're usually online 24/7.
So in the end, the only solution was to add more addresses. For our current needs, doubling the length would be more than enough but to be on the safe side, it was decided to quadruple the address length to a total of 16 bytes. This gives us about 340 undecillion unique addresses. Still not enough to give a unique address to every atom in the universe, not even enough for every atom on earth but still a lot. We can give every human an address range many times larger than the total address space of IPv4.
Does this mean that NAT is dead or that all your devices are visible from outside your network? Absolutely not. It means you can do that if you want. If your provider gives you a large address range, you can give each of your devices a different one and tell your router to forward everything. But you can also still use a single public address and/or tell your router to apply certain rules for what to do with incoming connections. There are also still address ranges that are meant purely for local use, equivalent to what 192.168.x.x and 10.x.x.x were in IPv4.
They are classes that describe how hard a problem is.
Imagine trying to explain to someone how fast you can do something, for example sorting a list. The simplest way would be saying "I can do that in two seconds" but that's not very helpful because it depends on how fast your computer is. A better way would be to express it as a number of steps: "I can do that in 10000 steps". For this ELI5 explanation the exact definition of what a step is doesn't matter that much, it could be a single CPU instruction or a comparison between two items in the list.
That gets you a bit closer but obviously, how complex sorting a list is, depends on the list: how long is it and how scrambled is it? Short lists are faster to sort than long ones and lists that are already (almost) sorted are usually fasterto sort than ones in reverse or completely random order. For that you can say "In the worst case, I can sort a list in three times the number of items squared, no matter the initial order". When writing that down, we call the number of items
n
, so the total work is3 * n^2
. The biggern
gets, the less the constant factor matters, so we can leave it out and instead writeO(n^2)
. This is, what people call "Big O notation" and it's the reason why I said the exact definition of a step doesn't matter that much. As long as you don't get it too wrong, different step definitions just change the constant that we're ignoring anyway. Oh and by the way,O(n^2)
for sorting lists isn't that great, good algorithms can reachO(n*log(n))
but I didn't want to throw logarithms at you right away.Now we get close to understanding what P is. It's the class of all problems that can be solved in "polynomial" time, so
O(n^a)
for any numbera
. Note that only the highest exponent is relevant. With some work we could prove that for exampleO(n^3 + n^2 + n)
is equivalent toO(n^3)
. Examples of problems in P are sorting, route planning and finding out if a number is prime.I'm running out of time because I have some errands to run, maybe someone else can explain NP (nondeterministic polynomial time). If not, I'll add a follow up later today.