HNHacker News
TopNewBestAskShowJobs

ad_hockey

273 karma · joined November 28, 2024

submissionscomments
ad_hockey··on What influence has the BBC had on history?
Using your own data, then: can you present your evidence that the majority of MPs, CEOs, bankers, and newspaper editors are left wing?
ad_hockey··on What influence has the BBC had on history?
That's a far worse proxy. If you want to study PPE at university then you have to pay, there is no alternative. Studying at Eton is entirely unnecessary, given that state schools exist, and also far more expensive - Oxford costs £9,500 per year, Eton is about £17,500 per term.

That's why it's the sole preserve of the elite, unlike Oxford.

ad_hockey··on What influence has the BBC had on history?
The UK. Being educated at Eton is a pretty good proxy for "the elite". We've had seven Eton-educated Prime Ministers in the 20th and 21st Century, and 100% of them were Conservatives.

There has never been an Eton-educated Labour PM and the majority of Labour MPs come from state schools. The political skew among the elites is pretty obvious.

ad_hockey··on Think Weirder: The Year's Best SciFi Ideas
That actually does happen in Black Mirror, in the episode Fifteen Million Merits. There's a sort of deafening siren that goes off if the characters look away from the ad without paying to skip it.
ad_hockey··on Counter-Strike's player economy is in a freefall
They're an institution in the UK. They're in the arcades at every seaside town, and every kid plays them. Now that I have kids I actually think they're brilliant; for £2 each they taught mine everything they need to know about gambling.

- You sometimes win a bit along the way, but eventually you lose everything.

- The jackpot prizes are only there to lure you in, and you never win them. Towards the middle of the shelf are things like £20 notes. We noticed that one of them was getting quite near the edge, and might actually become winnable, but then the following morning its position had been reset to the back of the shelf.

- It's still fun as long as you're just playing with money you don't mind losing, and not expecting to come out ahead.

They even learned something about company scrip, from the tickets that come out of the machines and the ridiculous exchange rate between tickets and the actual rewards at the prize shop.

I asked my son on the way home if he'd put all his Christmas money and savings into the machine if I let him, and the answer was hell no - maybe a pound, but he didn't want to lose all of his money. Valuable lessons all round.

ad_hockey··on Hyrum's Law
A couple of considerations are:

- You have to decide whether to bump the entire API version or only the /foo endpoint. The former can be a big deal (and you don't want to do it often), the latter is messy. Especially if you end up with some endpoints on /v1 (you got it right first time) while others are on /v4 or /v5. Some clients like to hard-code the URL prefix of your API, including the version, as a constant.

- You still have to decide what your deprecation and removal policy will be. Does there come a time when you remove /api/v1/foo completely, breaking even the clients who are using it correctly, or will you support it forever?

It's not easy at all, especially if you have to comply with a backwards compatibility policy. I've had many debates about whether it's OK to introduce breaking changes if we consider them to be bug fixes. It depends on factors like whether either behaviour is documented and subjective calls on how "obviously unintended" the behaviour might be.

ad_hockey··on Systems Correctness Practices at Amazon Web Services
Same paper, they're just referencing it:

> In 2014, Yuan et al. found that 92% of catastrophic failures in tested distributed systems were triggered by incorrect handling of nonfatal errors.

ad_hockey··on Systems Correctness Practices at Amazon Web Services
It gets tricky in a distributed system, or I suppose any server process. When the program crashes it just starts up again, and sometimes picks up the same input that caused the crash.

Typical example would be processing an event that you can't handle from a message queue. You don't want to crashloop, so you'd probably have to throw it away on a dead letter queue and continue processing. But then, is your system still correct? What happens if you later receive another event relating to the same entity, which depends on the first event? Or sometimes you can't even tell which entity the malformed or bug-triggering event relates to, and then it's a real problem.

ad_hockey··on Persuasion methods for engineering managers
That decoy pricing trick is not a good strategy. It's very easy to see through, and will seriously annoy whoever you try it on. Somebody once produced a build vs buy analysis for me, and it was so obviously biased towards their preferred option (build, because it's more fun and expands their personal empire) that I knew I couldn't trust them with anything else after that.

Just do the task honestly and well.

ad_hockey··on An interview question that will protect you from North Korean fake workers
Wouldn't that also apply to the spies, if they grew up in the US?
ad_hockey··on Goenums: Type Safe Enum Generator for Go
It's possible to have data races if you ignore the language conventions[1]. But even then, Go has provided an effective data race detection tool since 1.1: https://go.dev/blog/race-detector

I've been using Go on a large codebase for a number of years, and I haven't found data races to be a problem in practice.

[1] https://go.dev/doc/effective_go#sharing

ad_hockey··on Show HN: Seven39, a social media app that is only open for 3 hours every evening
It sounds more like a social network than social media, i.e the pre-timeline, pre-algorithm version of Facebook. Back when the content came from people you know rather than people you don't.

I really like the idea, it sounds like a very healthy way to engage. If you took a photo on holiday you wouldn't be able to share it until the evening, so you'd just put the phone away. It becomes a camera. At the moment I see people take a photo and then for the next hour they're distracted by reactions, comments, feeling obligated to respond to comments... they miss the whole experience. Sharing when your friends are actually online would also be more interactive.

Of course, if you're on holiday then your three hour home time window may be unusable. But then, worst case scenario, you bulk upload everything when you get home. It would be like the old days of returning from a trip and getting friends round to see a slide show - quite charming, really.

ad_hockey··on Clean Code vs. A Philosophy Of Software Design
Something I find odd about Uncle Bob's style is the preference for reading and modifying shared state over pure functions that take args. It makes me do a double take when I read a method registerTheCandidateAsPrime() (taken from UB's rewrite) that doesn't take a candidate arg.

How would you unit test those methods? You'd have to directly set the field values, then call the method, then assert on the fields. If the answer is "you don't unit test private methods" then that's completely fine, because I agree with that (perhaps this is implicit from the private keyword, I don't know Java). But I'm struggling to imagine how you would get to those private methods with such a strict adherence to TDD as Bob recommends. Methods like increaseEachPrimeMultipleToOrBeyondCandidate() are quite complex, and would be tricky to build up using TDD if you couldn't exercise them directly.

If nothing else, surely Bob's approach is not thread safe. Call PrimeGenerator3.generateFirstNPrimes() concurrently and they'll trample all over each other. John Ousterhout's stateless version doesn't have that problem.

ad_hockey··on Nintendo announces the Switch 2 [video]
Not just Nintendo. The PlayStation 4 controller had that touchpad in the middle that also clicked in to act as a button. I played a lot of games that used it as a button (usually to open a map, or something) and don't remember a single game that used it as a touchpad.
ad_hockey··on Formal Methods: Just Good Engineering Practice? (2024)
Agreed. To stretch the analogy, if I'm just replacing a fence panel or putting up a shelf then I'm not going to get an architect to create a blueprint. I'll know if it's right from the execution.

I sometimes work in areas where the error budget is essentially zero, with an element of concurrency, and for those there is a design stage before the build stage. I could see the value of formal methods there. At least I could execute a model with a model checker, which makes it one step closer to the code than a design doc or RFC.

Full disclosure: I haven't actually used formal methods myself, I've just been interested in the idea for a while and have done some reading on it.

ad_hockey··on Formal Methods: Just Good Engineering Practice? (2024)
Lamport's rationale is that after an architect designs a building, the builders may still put electrical sockets in the wrong place and make other mistakes. But that's not a reason to start construction without a plan at all.
ad_hockey··on Ending our third party fact-checking program and moving to Community Notes model
> If fact checking doesn't necessarily "always work", then you should not call it fact checking. That is already a great reason why Community Notes are better.

You can still call it fact checking, just as you can still call air travel by that name even though a very small percentage of planes crash. Suppose the fact checkers had a 0.1% false positive rate and a 0% false negative rate. For every 1,000 pieces of reported content they review which should be left up, they take one down, and they never leave anything up that should be taken down. Wouldn't we say that the system, broadly speaking, works and has value? Even though it doesn't always work?

Do you think Community Notes will "always work"?

> Community Notes is from the community, not from Facebook, so not directly influencable by the government.

It wouldn't work like this. Meta still own the platform, profit from it, and are responsible for it.

Governments will always want to talk to Meta about the material they host, because Facebook reaches millions of people. Sometimes the governments will have a valid case, like when material on Facebook can be linked to inciting genocide[1]. And sometimes they won't, and will be trying to pressurise Facebook for political or self-serving reasons. The point is, those governments will not simply be satisfied and go away if Meta throw their hands in the air and say "Sorry, but we fired the fact checkers and have no control over the material on our platform. It's up to the community, talk to them."

If Meta are trying to solve the government interference problem, the solution is to strengthen their fact checking and moderation systems. Then they'd be able to push back and say that actually no, they are confident that the content on Facebook is appropriate and can credibly stand by it. Abdicating responsibility is just going to get them into more trouble.

[1] https://en.wikipedia.org/wiki/Rohingya_genocide#Facebook_con...

ad_hockey··on Ending our third party fact-checking program and moving to Community Notes model
I sort of don't want to get into specific moderation examples, especially with Covid, because so many aspects of Covid are contentious. I'd just point out that this example has nothing to do with third party fact checkers, it was direct influence from a government on Meta; that can and will still happen even with Zuckerberg's policy changes. In fact I'd argue it will be even more likely now. If Meta had a robust policy on fact checking and removal of harmful content, that would be a weapon to push back on government interference.

It's also not necessary for third party fact checking to "always work" to have value, there will be some level of false positive rate that's still acceptable. Even with something like Covid, there is unambiguously false information with probably harmful consequences ("you can cure Covid by drinking a bottle of bleach", for example) that would be worth taking down by fact checkers.

ad_hockey··on Ending our third party fact-checking program and moving to Community Notes model
It sounds like you are disagreeing with the concept of facts, but facts do exist. If someone claims that a politician said a particular thing in a speech yesterday, and the politician gave no speech yesterday, then the claim is factually false. It's not a matter of respect or disrespect to say so, and it doesn't matter what you choose to believe on that topic.

> The concept of fact checking is a very recent movement, with the idea that we could filter out the "fake news" on the internet, which is also a recent concept.

Again, this is not accurate. Look at the job sub-editors have been doing for a century or more. Their main role is to save the newspaper from getting sued or looking silly by striking out or questioning any claim that can't be proven to be true, or corroborated by multiple sources. Fact checking is not a new discipline.

ad_hockey··on Ending our third party fact-checking program and moving to Community Notes model
I was answering your question. You asked how fact checkers can be fact checked and the answer is like any other job. Fact checking isn't magic, and it's existed for a long time. It's basically what newspaper sub-editors do.

> When you grow up you start to understand that you can't trust all authority all the time.

I think you know I'm not arguing for this. Don't misrepresent my position, please.

ad_hockey··on Ending our third party fact-checking program and moving to Community Notes model
> Indeed, how to fact check the fact checkers?

Like any other work, it can be reviewed by supervisors within the company and/or the client (Meta). If a sample of an employee's work shows that they often hide content that isn't factually false, they are performing their job poorly. If Meta doesn't like the job the company is doing, the contract can be cancelled.

> If we could have legitimate fact checking that really works, then I guess we wouldn't need any politics at all.

You absolutely need both. Politics is about which decisions to make within the context of shared facts. The amount of the US national debt, the number of people caught crossing the border illegally in 2024, or the number of people sleeping on the streets in San Francisco are all matters of fact. What to do about them is politics.

ad_hockey··on Show HN: Run10K Trainer – Personalized Training Running Plans for Your 10K Race
Don't be disheartened, there's room for more than one app in this space!

Runna doesn't get everything right. It didn't seem good at adjusting your plan based on performance, if it even tries to do that at all. My first few weeks of runs were much too easy, and I had to experiment with manually generating different plans with faster and slower target race times until the zone paces seemed right for me. Would have been great if it adjusted on the fly and I could have kept the same plan.

ad_hockey··on Show HN: Run10K Trainer – Personalized Training Running Plans for Your 10K Race
Which is not unreasonable. I had a lot of success with Runna, which is also essentially premium only; you get the first two weeks free, but all running plans are longer than that. Runna is about £100 for the annual subscription.
ad_hockey··on Mistakes as a new manager
I made that mistake as a new manager by picking up a small but important task in an area I knew well. I thought it would help unblock the team, but I didn't realise I was about to go into three days of back to back meetings. After the third stand-up in a row of reporting zero progress I sheepishly reassigned the ticket to someone else, and didn't make that mistake again.

Refactors, doc fixes, low priority bug fixes, and tech debt are all fair game for managers to pick up. I do think it's important to keep your hand in.

ad_hockey··on Mistakes as a new manager
Agreed. "Where's my dopamine" is the right way to describe it. As an IC I could find a bug, craft a test that reproduces it, write a fix, see the test go green, see the PR get approved and land... I'd get a little dopamine ping at each step. As a manager I'd have days where I had constructive 1:1s in the morning and maybe made a decision on some strategic or resourcing problem in an afternoon meeting. Of course I recognised that the work was not only valuable, but higher impact than just fixing a bug. But the direct hit in the pleasure receptors just wasn't there. I'd finish a day a like that and instead of feeling happy with my work, I'd just feel exhausted and not looking forward to the next day.

After a few years as a manager I switched back to the IC track. I sometimes wonder if my experience means I'm just hard-wired to be an IC, or if with more time and practice you can train yourself to get the dopamine feedback from management activities.

ad_hockey··on Staff Engineer vs. Engineering Manager
In my experience the distinction between Senior Engineer and Staff Engineer is meaningful, because they do very different jobs.

A Senior's work is scoped to one team, reporting to an EM, and they do the usual stuff - work on tickets, run stand-ups, deliver features. The Staff engineers have no home team (they are expected to work across multiple teams), they report to the CTO, and they have a lot more freedom in what they spend time on. In fact the dynamic is reversed; rather than being given work, they're accountable for identifying the most important work and doing it. It also comes with a whole lot of new meetings.

I'd argue that Senior Engineer is more of a bullshit title, if titles are supposed to be an indicator of what your job involves. At Senior my job didn't change at all. It's just a title to recognise people who have been around for a while.

← PreviousPage 2 of 2