One of these features is "Active Hood" or "Pop Up Hood" which uses pyrotechnic to pop the hood of the car in case of a frontal collision with a pedestrian, thus making the front hood of the car acting as some kind of stiff airbag for the pedestrian. This helps reducing the risk of life-threatening injuries. https://www.youtube.com/watch?v=q4zfwUL3joI
> Go 1.25 introduced a waitgroup.Go function that lets you add Go routines to a waitgroup more easily. It takes the place of using the go keyword, [...]
99% of the time, you don't want to use sync.WaitGroup, but rather errgroup.Group. This is basically sync.WaitGroup with error handling. It also has optional context/cancellation support. See https://pkg.go.dev/golang.org/x/sync/errgroup
I know it's not part of the standard library, but it's part of the http://golang.org/x/ packages. TBH, golang.org/x/ is stuff that should be in the standard library but isn't, for some reason.
I thought exactly the same thing. I use errgroup in practically every Go project because it does something you'd most likely do by hand otherwise, and it does it cleaner.
I discovered it after I had already written my own utility to do exactly the same thing, and the code was almost line for line the same, which was pretty funny. But it was a great opportunity to delete some code from the repo without having to refactor anything!
> and the code was almost line for line the same, which was pretty funny.
One of the core strengths of Go is that it fits the zen of Python's " There should be one-- and preferably only one --obvious way to do it" and it does this very nicely.
I never used errgroup but I realize that it's essentially the same what I end up implementing anyways.
With standard waitgroups I always move my states as a struct with something like a nested *data struct and an err property which is then pushed through the channel. But this way, my error handling is after the read instead of right at the Wait() call.
I would create an unwarranted bias towards people working for companies doing mostly opensource. If their previous job was writing safe code for rockets and airplanes, the candidate will very likely be qualified to write embedded code for tractor/cars but incapable of showing previous work due to confidentiality agreements.
I mean, I was hired out of university, and I had a portfolio of programming and a github ready to go to show that I could program, without having a previous job to show code from at all, let along one with an NDA
Do you have an updated portfolio though? For many people working in private industry, they aren't allowed to share code from their job, and their previous portfolio projects are from college, which would not be good enough for a mid or senior level role. Would you hire a (non-junior) frontend developer who shows you a React todo list they made 8 years ago?
You were young without kids or any other responsibilities, so you had spare time to nerd around. Not everybody is in that position. With this requirement you would create a bias towards single parents or folks talking care of the handicapped partner/parent, as well as another bunch of other categories of people.
Yeah, I'm confused by the article. Following this logic, any interview sucks because of the stress it puts on the candidate. So what am I supposed to do? Hire based on a home assignment? then the "unpaid labour" crowd will call me out, and I personally believe they would be right to do so... So I'm supposed to hire based on résumé only? It's a lose-lose situation.
It reminds me a professor who recently told me, regarding ChatGPT use in university: "we're receiving every week applications from foreign students written in perfect German, then when we schedule a call for an interview with the potential scholar, they're incapable to speak either German or English."
Not specific to you possibly, but how about interviewing based on what you do in this role, and what the person has experience in?
I'm personally done with frontend/UI development roles where the interviews expect you to "brush up on CS fundamentals" or "prep", and then they ask nothing about "here, make this UI", as if it's some side thing. And if you didn't "prepare" for their leetcode crap, they act like you are some huge liar/faker who's somehow been coasting for 15 years.
Lot of people are pretty decent at bullshit. And they can talk the shop well enough to coast for a while.
On other hand I wouldn't say it would be unreasonable for UI people to setup some basic UI or like that could be done fast. And then do some edits there. Even if it is just copying some toy project. Then again I am not sure what is the current state of fronte-end and how much crap you need to do basic UI.
Yeah I think there is a: "does this person get UIs at all, and like this type of work" filter that gets missed by some of these leetcode processes. Personally tired hearing "this guy ACED the interview, a++++" then they fumble around with the actual work we have to do.
i agree. the stress is an unavoidable in any context where people are being judged or evaluated. i also find take-homes stressful, with in-person coding at least the stress is constrained to a narrow time window.
but i also think that that's why live coding can work really well with simple problems like fizzbizz, create a list of fibonaccis, etc. these are simple-ass problems that any coder can churn out in their sleep. if the stress of an interview prevents you from solving something like this... you probably need some more practice coding until something like this becomes easy enough to do under stress.
Another security article recommending fail2ban again... Please don't do this.
Run SSH behind some layer. Some people use Wireguard, and that's okay, I prefer spiped [1] because I can run it as an unprivileged user in a fully hardened systemd unit [2], and I can use ProxyCommand in my ssh_config, which makes it transparent: no need to be constantly on a VPN or to turn it on, I just ssh.
This guide recommends two-factor authentication, which IMHO is overkill and lowers your server reliability by using some random pam authentication modules. Also your spiped key (or your wireguard key) can be considered a second factor authentication.
And a second independent layer lowers the probability of being vulnerable to a 0-day vulnerability on SSH [3] or to Jia Tan [4]
fail2ban means you have a daemon running as root parsing random logs and modify your firewall rules... Yikes... [5] If you're concerned about bruteforce bots, they'll go away as soon as SSH behind something. Also with that layer, you don't need to make you firewall dynamic.
[5] Yes I know, you can use as a user, and modify the firewall rules with custom script with an SUID. But nobody does this, actually this guide doesn't do this at all, just everything as root!
"Lobsters is hosted on three VPSs at DigitalOcean: a s-4vcpu-8gb for the web server, a s-4vcpu-8gb for the mariadb server, and a s-1vcpu-1gb for the IRC bot. DNS is hosted at DNSimple and we use restic for backups to b2. (Setup details are available in our ansible repo.) Lobsters is cheap to run, so we don't take donations."
Yes, it needs to be done in a fair manner. France used to have a tax (Impôt de Solidarité sur la Fortune) which was anybody with more than X millions of assets had to pay 75% of income tax. (I believe it was 10 millions, but I could be wrong) It wasn't perfect, but it wasn't a bad idea. IIRC it was slashed by Sarkozy right before the 2008 crisis as part of his campaign promises, and he just kept going with his tax cuts on the wealthy after 2008.
Another thing could be multipliers on property tax. For example, you would pay 0.75× of the property tax on your primary residence, 1.5× the property tax of your secondary residence, and start going exponentially on third, fourth, ... residence. Of course, there would be loopholes (like owning properties through companies), and these loopholes would need to be closed.
You could also tax buy-backs and dividends. (If a company buy their own shares, they have to pay a 50% tax on it)
There are a lot of possible implementations that could add up to each other. It's a fallacy to just point at the bad ones and say "look it doesn't work!"
The main issue is that there has been a transfer of global share income from labour to capital in the last 50 years. However we expect to pay for pensions just by taxing labour. It doesn't matter if there are less young people, because (as shown by GDP growth) they are producing more overall, but misinformed politicians use this argument because they don't understand that these folks didn't profit from the increase in productivity. We need to fairly take a share from this productivity increase and distribute it as pensions. The goal is to pay for what we promised, while relieving burden on young people.
There was a study in France showing that for rent subsidies.[1]
In France, the state pays max(rate * rent, cap) for apartments for students, unemployed and poor workers. Usually people don't qualify for ratio of the rent, because it's way over the cap for the subsidy. To keep up with inflation, the state re-evaluate the cap of the subsidy almost every year.
A french economist showed that there was a correlation between the cap of the rent subsidy and the rental market prices for small apartments. Of course, correlation is not causation, it could just be that the rental market follows the inflation as much as the cap. But this correlation doesn't happen for bigger and more luxurious appartments. Her explanation is that your poor household is only ready to afford €100 per month, as an example, the subsidy cap is €500, so the rental market prices these apartments to €600 (= 100 + 500). When the state re-evaluate the cap to €550, the rental market goes up to €650. (= 100 + 150)
The key difference in the markets is that it takes a very long time to build more apartments and houses, especially in France. There also isn't an option to not have housing. (Low elasticity) That keeps the short term supply effectively static. Same amount of supply, increase in money spent, inflation.
In a market like solar, there is production of more solar systems. There are also multiple readily available substitutes. (e.g. on-grid power) The effect of the subsidy should drive increased volume from manufacturers, keeping net price stable.
The quote is attributed to Soichiro Honda, in the book Driving Honda: Inside the World's Most Innovative Car Company by Jeffrey Rothfeder
Why solve hard problems when you can just lobby your way out of it?