903 karma · joined July 25, 2013
Though it wouldn't really be showing you the quantum effect; that's only proven with individual photons at a time. This technique sends a "big" pulse of light relying on some of it being diffusely reflected to the camera at each oscilloscope timestep.
Truly sending individual photons and measuring them is likely impractical as you'd have to wait for a huge time collecting data for each pixel, just hoping the photons happens to bounce directly into the photomultiplier tube.
I also maintain that human judgement, can still catch things anti-cheat software is yet incapable of. Example: it doesn't matter how well hidden your aimbot is, I still notice cheaters when their accuracy is wildly out of proportion with their strategic understanding of the game.
In my experience, not vendoring has _always_ led to breakages that are hard to debug and fix.
Meanwhile, vendoring is quite easy nowadays. Every reasonable package manager, and even npm, can do this near-trivially.
As trustworthy as it is, I am sadly on the hunt to replace it. Compared to wireguard, the throughput ain't great, and it takes way too much CPU on my low power nodes. I would pay good money for "tinc, but with wireguard transport" -- there's of course projects purporting to do this but I haven't found one I trust yet.
The difference here is push vs pull (also called eager vs lazy). It is often easier to write pull computations that only do the work that is actually needed.
Lot's of cool follow-on value-adds you can do once your emails are in JS like this. Like writing test cases to validate that none of your emails are susceptible to HTML injection. Or writing tests about never exceeding Gmail's 100kb limit. Or rendering your emails in Storybook.
Are there super heavy hustle places? Probably, but most places realize more time is not linearly more output for creative/knowledge work.
(Similarly, the internet would have you think anywhere offering "unlimited vacation" is a scam but I used and loved it)
And as an interviewer, I've never been asked to report on lunch chats.
> You're not my peer. We're not having fun.
Actually, most interviewers are your peers, and they typically know that you're under interview stress and are trying to help. If you can't take a break and de-stress during lunch, you're just hurting yourself.
This sort of thing happens all the time to all sorts of services. Rather than just blaming JS, it's far more productive to think of technical controls that could catch this. For example Taint Checking[3] or scanning server responses for API keys.
[1]: https://news.ycombinator.com/item?id=31026374
Ultimately I also gave up and now have a combination of port forwarding, nat64, and 10+ socat proxies in my docker-compose file. (Specifically, intranet->container and container->intranet are ipv6; but container->container is still ipv4)
More generally, I now try to keep my docker host as stock as possible. Whenever I'm reaching for daemon.json I just catch myself, take a step back, and say "what's the stupid but easy way to get this working".
Here's my solution to all of them:
Invest in your common infra. Docker provides stable images configured primarily with env vars. I have a docker-compose host with logging/monitoring/alerting. All service-specific files are mounted from a NAS that has backups. All network access is closed by default, but exposed via a central login proxy (tailscale would be an easier alternative, but my Beyondcorp-esque system lets non-technical family members use my services easily from anywhere by tapping a yubikey).
That's 3 pieces of infra to maintain (docker host, NAS, login proxy) but I can check all the boxes for self-hosting 15+ services. O(n) services with O(1) infra.
I regularly spin up new services in under 10 minutes, while only having to touch 3 files that I am already familiar with (docker-compose.yml, dnsconfig.js, nginx.conf). I've run stable services for years on this stack. The only painful issues have been upgrades to the docker host, docker ipv6, and hardware issues.
This is all on a recycled computer in the basement, with a cheap VPS as a stable public entrypoint.
(For completeness, the alternate take is that Veritasium was claiming "the way _elementary_ EE is taught is a lie" -- but that still leaves Veritasium having left out critical context for such an audience)
> I found the responses from other EEs on youtube like Electroboom and EEVBlog disappointing. [...] Rather than responding towards him with hostility, perhaps they should have considered if their own mental models weren't quite as accurate as they had thought.
Personally, I didn't get hostility from any of their videos. They were just injecting some engineering sensibility to bridge the gap between most people's EE knowledge and Derek saying "everything you've been taught is a lie."
Also, to my recollection they both absolutely attested that yes Maxwell's equations are the correct description which supports Derek's results (modulo Electroboom's callout about the bulb actually always being on)
1) Slander: He claims that the way EE is taught is a "lie" but leaves out the many ways that standard EE models agree with his result.
2) Clickbait / inadequate explanation: he leaves out many details in order to make his experiment seem far more mind-blowing that it really is.*
Critique 1 can be countered by saying he is targeting a lay audience (say, they took 1 high school physics course).
Critique 2 can be countered by saying he is targeting a slightly more advanced audience who would understand those details (say, 1 or 2 college courses).
But no matter who you think he's talking to, at least one of these critiques holds.
* In particular: a) He doesn't explain how "1/c" is derived from the 1m gap. b) He portrays the electrical field as totally detached from the layout of the wires. But if you rearrange his lightsecond-long wires to be a circle, the effect won't happen. c) He leaves out the fact that this experiment works even if you cut the ends of the wires, which would change many people's intuition (think of the wires more like antennas). d) His thought experiment is actually wrong: see Electroboom's video, but basically by Derek's own parameters the light would _always_ be turned on.
Also, I can't find the reference anymore, but I definitely remember promises of getting a pref to use a different backend. AFAICT, that was another lie.
So multiple lies surrounding this product, along with it being continuously pushed on users (I've had it disabled via pref since day 1, and then it started showing up on the new tab page regardless).
And people are surprised when it gets hate.
[1]: https://www.pcworld.com/article/2930532/reading-service-pock... [2]: https://groups.google.com/g/mozilla.governance/c/2PYq2w8tejs...
Now, yet again, I'll have to just pin Firefox and stop updating it everywhere for a few months until the inevitable "undo all these changes" plugins are ready.
Update: Just tried the new design. As expected, the new tabs take up substantial vertical space and even compact mode (now hidden behind about:config) barely helps. Time for more userChrome.css...
This is pretty much the operative line of the post. Rather than invert my whole development flow, I just use a UI like Magit which makes patch commits trivial.
Firefox is the only program I run that requires constant "config maintenance".
Meanwhile, I've used macOS at work for ~5 years. Every time a big release comes out, IT departments have to go around screaming "DONT UPDATE IT WILL BREAK EVERYTHING" for a month. Once that calms down later we finally can update (though I only _want_ to update because by that point the incessant "Update now or tonight?" prompts have driven me mad) -- and instead of everything breaking, it merely breaks half my customizations and I have to waste time fixing it.
In normal cloud computing you are effectively trusting the cloud provider not to look at or modify your code and data. Confidential computing uses built in CPU features to prevent anyone from seeing what is going on in (a few cores of) the CPU (and in EPYC's case, encrypt all RAM accesses). Very roughly: These CPU mechanisms include the ability to provide a digital signature of the current state of the CPU and memory, signed by private keys baked into the CPU by the manufacturer. The CPU only emits this signature when in the special "secure mode", so if you receive the signature and validate it you know the exact state of the machine being run by the CPU in secure mode. You can, for example: start a minimal bootloader, remotely validate it is running securely, and only then send it a key over the network to decrypt your proprietary code.
Effectively, it increases your trust in the cloud from P(cloud provider is screwing me over) to P((cloud provider AND CPU manufacturer are both working together to screw me over) ∪ (cloud provider has found and is exploiting a vulnerability in the CPU)).
Disclaimer: I work for Google but nowhere remotely related to this (I know only publicly available information about this product); I happened to do very similar research work 6 years ago in grad school.