6,784 karma · joined April 24, 2012
* parent or legal guardian (shows up on legal forms all the time)
* state or province (an English language political construct)
* DNS name or IP address
You could argue that "parent of legal guardian" is a legacy concept since it really just means "legal guardian", but it's literally written on legal forms, so it's a domain concept, except if you believe it shouldn't count because it's an anachronism.
You could argue that we don't need "state or province" since we can just say "region", but "region" doesn't mean "state or province" colloquially, and we have to be careful not to refer to Ontario as a state, so the distinction is important. Ironically, that distinction does not exist in Chinese, but it does in English.
"DNS name or IP address" absolutely are two different concepts, it just happens that URL's were specced to accept both as the "host" segment. So whether or not it counts as an example depends on whether you believe that the act of coining the term is also the act of erasing its status as an "or" relation. Alternatively, if you're implementing a web browser, that distinction absolutely does exist because you need to know not to try to resolve an IP address as a DNS name.
Given how long Windows CE was around and then whatever they called the subsequent mobile focused OSes, I’m sure they did care while they still had a shot, but Android ate their lunch. Probably deserved to IMO, in the limited mobile development I’ve done Android was an easier platform to develop for.
10-15 years later, Microsoft is adopting Android for a Surface device.
I’ve always code reviewed/gotten code reviewed on both the implementation and the tests, with completeness as the main quality you’re reviewing test code for. If that’s how we do it, we’re right back at code reviews.
Aren't "await Promise.all(...)" and "Promise.all(...).then(...)" more or less equivalent? (I'm less familiar with how JavaScript handles it under the hood.) In one case the callback executes once the promise completes, in another case execution of code after the await resumes once the promise completes. The article was about only awaiting once you actually need the data, whether you do it with continuation passing or async/await seems like an unimportant detail.
In my anecdotal experience, there is at least one class of bugs that code reviews are good at catching that a large expenditure of self-review effort often doesn't catch: security bugs.
The way I think about it is that it’s coaching if you are making decisions for them about the path they should take. It works here because writing code is a fairly general skillset.
With mentoring, the crux of the problem is that you’re trying to help them navigate their specific situation. And in my experience both as a mentor and a mentee, “where are they trying to go and what do they really want?” is actually the hardest part, and it’s not something you can consistently answer because it’s their experience and you’ll never fully understand the nuances of it. You can’t lay out the path for them, you can only (try to) help them see further down the path they’re already on.
I’ve yet to see any junior devs make the mistake of try-ing an unawaited promise. They’ve all seemed to appreciate the “async” aspect of the semantics up front.
Most websites including financial ones fail on the second point. And it worries me because SIM swapping is real and does happen to people you know.
There usually isn't a "make the product worse" ticket. It's often more a matter of not having enough time to do it the interoperable way.
That's not to say "actively shit on our customers" tickets don't exist, just that it happens so often because of far less sinister, far more mundane reasons.
It's true that sometimes I just don't want to be bothered while I'm running errands, but I wouldn't consider someone making small talk, cracking a joke in the elevator, etc. to be some sort of social transgression. As an introvert, chatting or small talk isn't really a chore, and I waste enough of my own time on my own time, so what's a few words with a stranger?
That said, it should be considered perfectly acceptable to signal that you don't want to stay engaged in a conversation if it's someone trying to explain their theory on building a perpetual motion machine. That actually happened. I did not want to stay in that conversation. But even extroverts don't like dealing with crazy.
It only becomes a chore when the talking itself is the work, such as dealing with Comcast charging you for a modem you totally did return, or dealing with the hospital when they incorrectly billed your health insurance and now they're trying to make you pay for the difference.
These days when you have chat as an alternative to saying it out loud with other people around, you can afford to tell someone what negative thing is coming: “hey when you have a moment let’s talk about how you handled _____”.
Then they know what’s coming. It might be unpleasant, but it’s not spooky.
And if you have to drop the news without a prior hint, regularly scheduled meetings can do that without people having their guards up.
People get the benefit of the doubt until they lose it.
There are well-meaning jerks who are just rough around the edges but care a lot about doing the right thing. I might not like them very much, but I'll take a competent jerk over someone whose integrity I don't trust no matter how competent or polite they are.
Once I'm cooking, I just use a dedicated pair of steel tongs for moving chicken around, then I don't have to keep washing my hands, I just clean that set of utensils once I have a moment.
I think it's still worth the effort, it's just some specific food handling practices. After all, it's not like I don't practice the same caution when I'm handling any meat, and even for any other meat I'd have to wash my hands when moving from handling meat to veggies.
In my personal experience, this is doubly true in work contexts, even for/especially for disciplines that don't typically involve writing.
My personal anecdata is that there is absolutely a correlation between how well a product manager or engineer writes and how well-thought-out their ideas are when you start to drill down into what they are saying or asking.
On the one hand, it really does clean some things up well, like for higher order components, but also I find the magic just leaks more than I’d like, and as a result I feel like the only way use the magic safely is to study all of the pitfalls.
It’s like using C++ smart pointers but a bit less foot-shooty.
I suspect the reason it wasn’t a bigger bombshell is that ad exchanges are hard to understand beyond the surface level “it’s an exchange for ads”, and other ad exchanges were also dirty. Google wasn’t the only one doing questionable things being on both sell and buy sides of transactions:
https://www.businessinsider.com/guardian-takes-legal-action-...
One of the most astounding things I learned in my time in ad tech was just how wide the gulf is between how much the advertiser pays and how much the website owner gets. It’s one to two orders of magnitude difference, mostly made up in fees for all of the platforms and data and other value add in between.
As someone who started from raw OpenGL and cobbling together various libraries (OpenAL, OpenIL, etc.), I think it's bad for pedagogy, but I love it for productivity. Just like React.js.
I think there's a huge advantage to not having to spend time writing code to glue together asset management to physics to animation to graphics to audio to AI and UI, etc., and also because scene graphs and entity/component systems are like game programming's equivalent to REST and MVC.
So once you know how to work with that stuff, jumping into an engine is a great way to get right to prototyping and skip all of the setup. But for building up the conceptual understanding... it's rough. It's just a totally alien way to think about programming if your background is classic frontend/backend.
> And honestly it can be a daunting choice. They're all quite large and have their own jargon and way of doing things. I can get through a "Hello, world!" tutorial in an afternoon but it'll take months before I get something useful to work and load my brain with all of the jargon to navigate the documentation and forums...
That's absolutely a problem, and I totally agree that it's exacerbated by starting from Unity as opposed to learning the component concepts individually. But that said, Unity genuinely saves me a ton of time, even if the result isn't as optimized. That goes double for VR, where the sheer conceptual load of designing/coding the interaction models makes doing it without an engine not really worth it.
> versus writing everything from scratch. It's a slower start but I have already learned a good programming language and can go from there. I don't end up with a black box of performance problems. Nor do I end up trying to shoe-horn my round game into a square peg. It's quite common going down this route to write your own data formats and tools as well: level editors, compilers, debuggers. And the productivity starts going up fast as you build momentum.
I think this is a difference of what you're trying to accomplish. An engine gets you off the ground much faster if you have trained on it because enough of the abstractions are common to most games that, for example, reusing a not 100% ideal graphics/physics/skeletal animation rigging/key framing/audio/collision detection system still saves you a lot of programming.
This resonates a lot. My partner is a startup founder, and fairly often their weekend is life maintenance and recovery because their work week allows nothing else. I spend much more time on side projects, but on some weeks I can tell on Friday that it’s not going to be a productive weekend by any standard except self care.
I don’t think it’s that people have a problem admitting that there are significant outliers. It’s that there’s a backlash to the fetishization of “hiring 10x programmers” and most people claiming to be one really aren’t.
I know I’m good at it, but I am not and will probably never get to 10x on just writing code. I’ve worked with people who have a better claim to being a 10x. And having seen that, I have also never encountered any company that claims to hire 10x engineers that actually has a process to consistently hire even 1-2x engineers.
I'd say Visual Studio (not VSCode) is pretty much the only not-really-optional, not-really-free dependency. I suppose that means you also need to buy Windows.
Personally, while I use(d) C# for work and I think it comes with a solid toolchain and I have no big complaints, I have never chosen it when I could choose the stack from the beginning.
Myself too. It wasn't the remoteness that bugged me. I live less than 10 minutes from my office, so it's not like the lack of a commute even factored in. And I've worked with geographically distributed teams my whole career. It was the simultaneous social isolation outside of work and having just moved to a new location where I didn't have an established support network, taking away my normal channels for dealing with stress.
Anecdotally, a good portion of my team is teetering on the edge of burnout. We're not less productive because of remoteness, we're less productive because we're all getting less sleep and fewer productive hours. And it's well known that stress reduces creativity.