Hacker Newsnew | past | comments | ask | show | jobs | submit | zaphar's commentslogin

I don't know if this works for anyone other than our family but when we were raising our kids we solved this by the simple of expedient that gaming and computer use was done with us as parents present. Full stop.

It was not a solo activity for our kids. We could directly view everything they were doing online the entire time.


Advice like this only works for specific age ranges.

When I was a kid I had a friend whose parents, or mom rather, went to similar lengths to ensure all gaming was monitored closely by her. She would turn the game console off if she saw anything she decided was not to her liking.

This was all fair when we were 7-8, but she insisted on doing it well into his teenage years. This level of extreme control and micromanagement was not good for their relationship or his personal development, to put it mildly.

Every time I read HN comments from parents declaring their child will not have a phone until they turn 16 (another comment in this thread) or how they’ll lock their kids out of games and social media completely I think back to my friend whose mom was extremely controlling in the same way.

Young kids need tight controls, but this needs to be loosened as they age. Parenting discussions really need to come with age ranges because what’s appropriate changes so fast from year to year.


I agree, the point of making usage monitored early on is so that you can train your child in what to do when they encounter stuff online. As that training has occured then you can begin to loosen the restriction and give them more freedom. This is the job of parenting. You are teaching your child how to safely and productively engage with the world and the younger they are the more of your time and attention this requires. If you don't teach them someone else might and that lesson may haunt them for the rest of their life.

I frankly would prefer just not gaming at all, than being ashamed in front of all my friends.

Also you have to consider the ramifications of such behavior if that gets public, I mean could possibly be the source of bullying and what not.

As a child we were de incentivized to playing games with the computer. The schema was:

A) computer you can have, because is useful beyond playing, consoles, no way. Forget it “that is stupidizing BS”

B) No money for games. Other SW would be bought, but rarely games.

That moved us to start spending time with other things in the computer, like programming our own games.

Of course today that is all difficult to impossible, by design, without ostracizing the kids.


Congratulations that you had that luxury.

Sounds barely realistic, when school are using iPads, education is one URL away from entertainment crack and parental controls on iOS are a joke.


I'm sorry you feel like it's out of reach of so many. We definitely had to sacrifice a number of things to make it happen. It's not like it was necessarily easy. Unless you are in the unfortunate position of being an only parent this can be an area where you have choice. You can:

1. Ask your school to change their policies. Coordinate with other parents. Make it clear to the school that if they don't start to enforce these policies then you will hold the school directly responsible for any harm that comes to your child in the environment they create.

2. Pick different schools. (Home School, Private school) if you can afford it. Charter schools may be an option.

Both of these require sacrifice on your part and neither are easy. But no one should ever think parenting is easy.


When I was a kid, my Sega Genesis was connected to the TV in my parents bedroom. It made it impossible to play without their knowledge or when they were asleep.

That's essentially the rule in our house. No screens not visible to other members of the family.

In US, we restrict alcohol kids until they're 21. Pornography is poison.


It's so bizarre to me that in "The Land of the Free", 18 year olds, who are considered old enough to go to war, are not allowed to drink. Especially because this isn't some archaic law from the 18th or 19th centuries but instead from 1984 and only came about after the federal government withheld funds to force the states' hands over a period of 4 years.

It's not a federal law, you can buy and drink alcohol at 18 in the Virgin Islands and Puerto Rico for instance, so definitely possible to drinking at 18 legally in the USA. I don't know if there is a federal drinking age but it's definitely not above 18.

Also in I want to say about half the states (could be wrong here, but at least a few), it is legal to drink well below 18 in a private home.

-------------

Example, wisconsin:

>Can an underage person possess and consume alcohol beverages on licensed premises? Yes. Persons under age 21 may possess and consume alcohol beverages if they are with their parents, guardians or spouses of legal drinking age; but this is at the discretion of the licensee. The licensed premises may choose to prohibit consumption and possession of alcohol beverages by underage persons. (Sec. 125.07(1), Wis. Stats.)

The drinking laws in at least ~half the USA are a lot looser than most people think. If the parents are ok with it the kid can generally drink somehow.

https://www.revenue.wi.gov/Pages/FAQS/ise-atundrg.aspx#undrg...


It’s essentially a federal law - if a state wants to get full federal funding for highways, they have to have a law restricting alcohol purchase and public consumption to 21+. It’s from the National Minimum Drinking Age Act of 1984.

The issue isn't drinking; if the motor vehicle operator age was 21, then the drinking age could be 16. But it isn't.

Drinking is an archaic caveman activity that newer generations dont really care about, observed on a global trend. GenX and older millennials ring this bell continuously for a crowd that doesn't care. Shouldn't you focus on issues that actually impact and hurt people instead of trying to point out some "inconsistency" about the usage of the land of the free slogan that no one ever brings up in any conversation about america?

Drinking is taking a nosedive because larger segments of society are shut-in losers, who are not engaging in real-world social spaces which are lubricated with alcohol. That's 95% of the reason, the rest is people smoking when they would have been drinking.

The fall in alcohol consumption is directly tied to a fall in socialization writ-large. That isn't a win, it's a tragedy.


Yes, your entire post screams "older generation knows better, newer generation stupid losers" in unifying accompaniment with my initial caveman comparison. It's always interesting seeing the divide of generational vs cultural values from the point of view of people in the country, and the absolute insistence that their values represent one side vs representing the other. If you're observant, you get to witness in real time the cold and deafening silence of society moving on and losing interest with whatever hill-of-the-week people want to dramatically die on through over performant thrashing about. I mentally frame this timeline and context to be the equivalent of a child tantrumming in a grocery store while everyone else is just focused on shopping and going home, except I get to stop and point and laugh every once and a while in moments like this one. The death of stoner culture and commercialization of THC as a product instead of a lifestyle was pretty similar.

I thought you could go into a store on post and buy alcohol at 18.

And they can have sex legally when they are 16. But oh noes if 2 16 year olds send nudes to each other. Then, somehow, is "child" sexual assault images.

Frankly, these half-assed laws disenfranchise an already not-permitted-to-vote populace. But somehow these "kids" can be declared as adults if they are 16 and having sex or courts deem them 'adults', but simultaneously find them to be parental property.

Glad I dont have children. The situation is a toxic cesspool.


So no smartphones?

Neutered smartphone with zero internet access and apps locked down like North Korea.

We also lock up our alcohol, as many parents have chosen to do for generations.


Nope. More people should be like this.

And then, we pretend we are surprised why the majority of adults don't care about privacy.

Why would they? They grew up being 100% controlled with 0 privacy. They don't even know it doesn't have to be like that. Then, it was their parents violating their privacy, now it's government and corporations.


Privacy is a privilege granted relative to age and maturity.

Most 5-year olds should be allowed to close the bathroom door while doing their business, they should not be permitted to access the internet privately.


A five year old is not prepared to engage online with privacy. They have not had the necessary training yet. They will not get that training unless you are there to show them how to negotiate that world. They will not magically learn how to protect themselves if you just leave them to figure it out themselves.

That description of "100%" means the lack of privacy they're objecting to is one going a lot lot past five years old.

Your first comment didn't mention age, so they made a comment about a broader interpretation of the idea.


I was never controlled in any way that may remotely violate my privacy. In fact, glad that nothing ever happened to me, because it could have. But for a long time I was not worried about my online visibility…

I do not agree at all with this conclusion.


Encourage voice chat, so you can hear what they are saying too :)

The original reuters article quotes Meta as claiming that making them harder to find by removing them from the system. This article doesn't offer any evidence to suggest that Meta is lying. This is lazy and poor reporting as far as I'm concerned.

The issue as I see it is that these searches are run when testers look for them, not on a regular basis. If Facebook can detect them, why let them be displayed in the first place?

Reuters: Restaurant hides unsanitary waste from food inspectors by hiding it in dumpster.

Restaurant seen throwing waste in dumpster after removing it from food inspector's plate. Insists there's no other waste on other plates, apparently without checking.

What proportion of the scam ads do you think this approach caught?


I'm not sure, but starting with the ads that appear with most popular searches isn't a bad idea per se. It's a bit like sending law enforcement to protect popular areas.

>Restaurant seen throwing waste in dumpster after removing it from food inspector's plate. Insists there's no other waste on other plates, apparently without checking.

That seems... kinda reasonable?

Health inspector: "hey it looks like your ice machine is dirty, and you're not keeping foods at a hot enough temperature"

Restaurant: "ok we'll clean our ice machines more carefully and install thermometers to monitor the temperature of our hot trays"

Journalist: "Restaurant made health violations harder to find instead of removing them!"

Would it be better if the restaurant was proactively fixing issues before the health inspector brought it up? Yes. Does it make sense to imply that the restaurant was acting maliciously by making health violations "harder to find"? No.


Regulators can't verify every single Facebook ad. So, they take a sample. Facebook is creating a Potemkin village - trying to provide a clean sample. It suggests they don't believe that a wider sample would pass muster.

It's more like if the health inspector found e coli in the spaghetti, so Facebook threw out the spaghetti then said "trust us, you don't need to check the macaroni, it's fine."


That sounds funny, until you realize that there are people who pull ingredients from the waste bin if they still look "good enough". At least one restaurant chain owner in germany was banned from entering his own restaurants after he was caught on camera instructing his staff to do just that, apparently only one instance of a long chain of food safety violations his "frugal" business practices caused.

You can have more than one community. Find some new ones. Look deliberately for a different kind of community. Take dance or art classes at your community college. Join a sport club. There are lots of options.

Dance classes are great for getting to known other people, esp. women: Most dance classes lack enough men (for whatever reason)

I had a colleague who was member of a dance club, then he had to move to another district, making it super uncomfortable to continue on a regular base - up until today they are calling him every few weeks if he can attend because lack of men


Because that's normal language idioms in financial analysis reporting?

I wholeheartedly agree. I raised 5 kids 1 to 1.5 years apart before there were iPads or iPhones. We went to restaurants with them regularly and they did fine. We had the occasional issue but not often. More often we would get compliments on how well behaved. This absolutely possible.

Parent of 3 here. It's not just possible. It's quite normal for young kids to be well behaved in public places without having an electronic baby sitter.

If your error domain has only one useful category why not just create an error type with a useful message and be done with it. Why use anyhow at all? You are essentially saying the error domain is small so the work is tiny anyway.

anyhow seems useful in the very top layers where you basically just want bubble the useful errors modeled elsewhere to a top layer that can appropriately handle them. I don't think a crate should abdicate from modeling the error domain any more than they should abdicate from modeling the other types.


I'm trying to describe a rather large spectrum of situations, and how most of them are favorable (or not unfavorable) to anyhow.

I'm not saying the error domain is small per se.

Instead, one argument I'm making: what you're describing about errors bubbling up to the top layer, is what happens with the overwhelming majority of errors in my experience.

Whether the error space is large or small, just wait until you have an immediate need to treat one error different from the rest. It happens, it's just not common.

I didn't steelman the case for when to use enums, but in short: In a tiny error space or as valuable documentation.

(The doc value is undermined somewhat when projects use 1-big-error and functions that eg only returns 3 of the 6 possible errors)

I'm not advocating removing an Error enum. Just that writing one can and should be postponed, saving a lot of maintenance edits.


    what you're describing about errors bubbling up to the top layer, is what happens with the overwhelming majority of errors in my experience.
I agree that this is what happens in practice for most code that I read and have to interact with. I think where I differ from you is that I don't think this is good and do not advise people to do this for their own code. I think it's a pervasive but bad practice in our line of work.

>I don't think a crate should abdicate from modeling the error domain any more than they should abdicate from modeling the other types.

Yes, it's just harder. We usually have a pretty good idea what callers want from the happy path, but the range of things that callers may or may not want to do in case of an error is very broad.


This is an interesting perspective. I usually don't try to imagine how someone should handle the error. Instead I try to indicate the different types of errors that could occur and what type of information needs to be included to be useful to the caller. I can leave the question of what to do with that information to the caller since it's highly situational and the context necessary to make that decision lives outside of the code where I am modeling the error.

That can be tricky because there may be a trade-off between error message quality and something else. Like, perhaps, the size of an error, code size or even runtime performance. Another trade-off with too-detailed errors---especially when those details are part of the library API---is that they become an extensibility hazard. Unless you're extremely certain about the line that divides a specific implementation from the logical domain of errors for a particular operation, you might get that wrong. And changing the implementation in the future might want a change in the error details.

This is very hand-wavy, but I think we're talking at a very high level of abstraction here. My main point is to suggest that there is more of a balancing act here than perhaps your words suggest.


I agree that it's a balancing act. I just don't think you get to abdicate from doing that balancing act and getting the balance wrong has consequences just like getting the balancing act wrong in your non error data model.

>I usually don't try to imagine how someone should handle the error.

But that's exactly what you do when you...

>... try to indicate the different types of errors that could occur and what type of information needs to be included to be useful to the caller.

Modelling the error domain means to decide which possible distinctions matter and which don't. This is not self evident. It's you imagining what users may want to do with your errors.

Is it enough for the caller to know that some string you're parsing is invalid or do they need to know what it is exactly that makes it invalid?

If you decide to just pass on everything you happen to know based on your current implementation then you are putting restrictions on future changes to that implementation, potentially including the use of third party libraries.

What if you find a shortcut or a library that makes your parser 10 times faster but doesn't provide this detailed information?

What I see a lot in Rust is that massive amounts of implementation details are leaked via errors. thiserror actually encourages this sort of implementation leak:

  #[derive(Error, Debug)]
  pub enum MyError {
      Io(#[from] io::Error),
      Glob(#[from] globset::Error),
  }
https://docs.rs/thiserror/latest/thiserror/

Sure, if you don't model the error domain correctly you will leak stuff that maybe you shouldn't leak. But I'm not sure that this is worse than just not exposing the types of errors that you are handling.

Your example is interesting actually because there are real differences in those types of errors. IO errors are different from the globset errors. It is reasonable to assume that you would want to handle them differently. If your function can actually have both errors as a consumer I would want to know that so I can make the correct decisions in context. If you don't have a way to signal to my code that both happen you've deprived me of the tools to do my own proper error modeling and handling.


>Sure, if you don't model the error domain correctly you will leak stuff that maybe you shouldn't leak

You are implying that there is one correct and self evident set of distinctions. I disagree with that. In library design, you're always making assumptions about what users may want. In my opinion, this is even harder when modelling errors, because there are so many possible ways in which callers might want to respond.

>Your example is interesting actually because there are real differences in those types of errors. IO errors are different from the globset errors.

Of course. I'm not complaining about the distinction between io errors and globbing errors here but about the fact that the globset library and its specific error type is leaked.

What if someone (say fastburningsushi) comes along and creates a glob library that absolutely smokes this one? :P


They wrote their own language (C) too. They invented a new language because the current crop of languages didn't suit their needs. Your argument ignores the parts of history that are inconvenient and highlights the ones that you think support it.


You mean as in "having fun"?

"Although we entertained occasional thoughts about implementing one of the major languages of the time like Fortran, PL/I, or Algol 68, such a project seemed hopelessly large for our resources: much simpler and smaller tools were called for. All these languages influenced our work, but it was more fun to do things on our own."

-- https://www.nokia.com/bell-labs/about/dennis-m-ritchie/chist...

People arguing for UNIX/C, also tend to forget the decade of systems languages that predates them, starting with JOVIAL in 1958.

They also forget that after coming up with UNIX/C, they went on to create Plan 9, which was supposed to use Alef, abandoned its designed, later acknowledege lack of GC as an key issue, created Inferno and Limbo, finalizing with contributions to Go's original design.

"Alef appeared in the first and second editions of Plan 9, but was abandoned during development of the third edition.[1][2] Rob Pike later explained Alef's demise by pointing to its lack of automatic memory management, despite Pike's and other people's urging Winterbottom to add garbage collection to the language;[3] also, in a February 2000 slideshow, Pike noted: "…although Alef was a fruitful language, it proved too difficult to maintain a variant language across multiple architectures, so we took what we learned from it and built the thread library for C."[4]"

-- https://en.wikipedia.org/wiki/Alef_(programming_language)

UNIX and C creators moved on, apparently those that whorship them haven't got the history lesson up to date.


for a project like unix at the time and even linux now I think "having fun" is absolutely one of their needs.


I think when Fish shell announced the Rust rewrite, they especially highlit that, in the form of "being more attractive to contributors" as one of the reasons.


I think I'm mostly of the opinion these days that there is no such thing as an "outdated technology". There are technologies that are no longer fit for purpose but that is almost never because of their age. It nearly always because of one of as examples: Needing to run in an environment it can't support, Having bugs that are not getting fixed/no longer maintained, Missing features necessary to solve new problems or add new features, Hitting scale limits.

Outdated may sometimes be a euphemism for one of the above but usually when I see it in a discussion it just means "old" or "out of fashion" instead.


I'd also add "there are almost no developers using it on the job market" to the list why some technologies are no longer fit for purpose. It's a major one. Sort of tied to the ecosystem (no devs - not many things get mantained/created).


I do think that holds more water than just "It's old".

However for pretty much any dev I would hire for a job they can get to grips with a technology that's older pretty quickly. Where it does get dicey is when good dev just refuses to work with it. For those devs, I think, when they hold that opinion it typically means one of those other reasons is behind their refusal.


>one of those other reasons is behind their refusal.

I mean, one of those reasons is "When I leave this job will I be able to get another job" is a huge deeply life affecting one.

If you want me to work on COBOL from 1988 then you've limited my work prospects to one of a very few employers in the country at a very specific pay range. If I instead tell you to eat a fat one and go with $language_de_jour the number of employers and potential salary range is much, much larger.


Why does working in one technology prevent you from getting a job in another one?


Haven't you seen job offers where X years of experience in XYZ is a must? It's like most of them. Never got one without this actually. Gotta have this experience from somewhere.

I know devs like to say they would hire anyone, but they're not the ones hiring. At best you get to interview people already prefiltered by HR which... looks for keywords in CV.


My personal anecdotal experience is considerably different. I've worked multiple places where I had to learn the stack on the job. Up to and including the language at least once.

I've never found it too difficult to get hired even when the requirements don't list something I've done already.


You’ve been lucky then, or have excellent credentials, or some combination of the two. Your anecdote doesn’t invalidate their point about it being a valid reason a dev would want to gain experience in a current and modern technology over an archaic one.


At least in the current market there is a lot less leeway for this


Terraform has modules which are an elaborate method of doing function calls. HCL 2 has loops and conditionals. It is most definitely imperative.

This is not necessarily a problem except that they had to live in the original HCL v1 landscape which makes them awkward syntactically.


> Terraform has modules which are an elaborate method of doing function calls

... What? How is modules a function call? It's just a hierarchy, everything about/with modules is still declarative.

> HCL 2 has loops and conditionals. It is most definitely imperative.

So what? Just because there is loops and conditionals doesn't mean it's suddenly imperative.

How exactly you do loops in HCL? Last time I used it, you still used declarative configuration for that, and use `for_each` as an declared option, you don't "call for_each which returns config", all that happens inside of HCL/TF, because it is declarative.

Did something change like yesterday or are people even here on HN so ignorant about what declarative vs imperative actually means?


You "call" a module with arguments. You can call them multiple times. In every way that matters they are just like a function call.

I don't understand why there is a distinction between for each in a standard language vs for_each in HCL2. They are both do something by iterating over something else at runtime. The syntax isn't what matters here.

I think maybe you are mistaken in your own distinction between declarative and imperative.


Imperative: Tell the computer how to do something, by instructing it what to do.

Declarative: Tell the computer what you want the result to be like, and the computer figures out how to do it.

for_each in Terraform is very much declarative, just like modules. Compare how you'd do the same thing with JS or any other (imperative) language you know, and I think it must be clear what the difference between the two is.


Those boundaries are pretty fuzzy. The complexity of the logic with conditionals and loops in a module means that you have pretty much stopped describing what it should like and instead described how to make it look the way you want it.

I have read terraform modules where I had to execute the logic to know what got produced which moves it from your imperative description to the declarative description as far as I'm concerned.


If the religious institution does a better job at roughly the same cost-point then it's probably not the money that is making the difference.


No, it’s the selection process of parents and children.


And, it's worth noting, the uh...deselection process. Private schools can kick kids out, public schools cannot.


Public schools can't legally kick kids out, but SFUSD has shown it can drive parents away.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: