The biggest assholes in your example are the people saying "Fuck Timothy". It's also not my fault those people are assholes. If they don't like my party that's fine. If they say i don't have music or whatever that's fine.
If they tell me I don't know how to run parties and all parties need to have music and snacks or else its not a party I'm gonna tell them to fuck off.
I’ve never been the popular kid for more than a few minutes. It felt weird when it happened, both due to impostor syndrome and the unfortunate situations where it most often happened. Like an altercation where I found I was seen more than I thought.
But I’ve been involved with highly successful clubs from a young age, and I have to take things apart to understand them. I also lived for ten years with a woman who wanted to not only be in every club she saw but take over them, and I got a good anthropology study in to what things she made better and which she made worse (did I mention we aren’t together anymore?)
The reasons they were popular often turned out not to be the reasons I would have thought. Stupid little things like keeping a consistent location and meeting time seem small but the outcomes are outsized.
(Inline edit, I’m such a space cadet I left out the punchline) one of the biggest is figuring out how to successfully channel the enthusiasm of new members 90% of which will be gone in 6-18 months. Which OSS has in truckloads.
As I’ve matured I’ve realized that I should not dream of being in charge of these organizations anymore. The qualities (or energies really) I possess in insufficient quantities to keep that many plates spinning. Properly. So I help those people be the leaders we need, and I hop in when the stars align and my energies are sufficient to take something off their plate. And god forbid they get hit by a bus and I become acting president of VP, my first effort would be in grooming a replacement, not trying to take over.
You can’t have an objective conversation about this sort of stuff with people who still have a chip on their shoulder about how they’re right and the universe is wrong for not understanding how amazing you are. You’re right, but you’re also tragically wrong. And until you grasp that you will be railing against the universe for the indignities it thrust upon you.
I get that vibe in a lot of these conversations. And I wish I knew how to find the people who understand this. All I can do is talk to the people who rail and hope the silent audience gets something from it.
Yep, it sounds like it was written to be falsely reassuring and it doesn't hold up to scrutiny. Facial recognition works on data, not just images, such as the ratios between features, jawline, cheek structure, etc... Most people won't spot this.
How do we even begin to establish that? This isn't a simple "more accidents" or "less accidents" question, its about the vague notion of "justice" which varies from person to person much less case to case.
Outside AI independently uncovering some energy breakthrough there is nothing it can do to help, only hurt. We already have a source of clean, cheap, unlimited energy, we aren't rolling it out the way we could and should because some rich people would rather have us on a subscription plan where we literally light our source of energy on fire so we have to keep coming back for more.
We could certainly do better but switching isn't as simple as you imply. You also conveniently left out the part where activists historically blocked nuclear buildout.
In my experience that's pretty rare. Most people pass around string phone numbers instead of a phonenumber class.
Java makes it a pain though, so most code ends up primitive obsessed. Other languages make it easier, but unless the language and company has a strong culture around this, they still usually end up primitive obsessed.
I’m very much a proponent of statically typed languages and primarily work in C#.
We tried “typed” strings like this on a project once for business identifiers.
Overall it worked in making sure that the wrong type of ID couldn’t accidentally be used in the wrong place, but the general consensus after moving on from the project was that the “juice was not worth the squeeze”.
I don’t know if other languages make it easier, but in c# it felt like the language was mostly working against you. For example data needs to come in and out over an API and is in string form when it does, meaning you have to do manual conversions all the time.
In c# I use named arguments most of the time, making it much harder to accidentally pass the wrong string into a method or constructor’s parameter.
Without any other context? Nothing - it's just a type alias...
But the context this type of an alias should exist in is one where a string isn't turned into a PhoneNumber until you've validated it. All the functions taking a string that might end up being a PhoneNumber need to be highly defensive - but all the functions taking a PhoneNumber can lean on the assumptions that go into that type.
It's nice to have tight control over the string -> PhoneNumber parsing that guarantees all those assumptions are checked. Ideally that'd be done through domain based type restrictions, but it might just be code - either way, if you're diligent, you can stop being defensive in downstream functions.
> All the functions taking a string that might end up being a PhoneNumber need to be highly defensive
Yeah, I can't relate at all with not using a type for this after having to write gross defensive code a couple of times e.g. if it's not a phone number you've got to return undefined or throw an exception? The typed approach is shorter, cleaner, self-documenting, reduces bugs and makes refactoring easier.
>But the context this type of an alias should exist in is one where a string isn't turned into a PhoneNumber until you've validated it.
Even if you don't do any validation as part of the construction (and yeah, having a separate type for validated vs unvalidated is extremely helpful), universally using type aliases like that pretty much entirely prevents the class of bugs from accidentally passing a string/int typed value into a variable of the wrong stringy/inty type, e.g. mixing up different categories of id or name or whatever.
one issue is it’s not a type alias but a type encapsulation. This have a cost at runtime, it’s not like in some functionnals languages a non cost abstraction.
Obviously the pseudo code leaves to the imagination, but what benefits does this give you? Are you checking that it is 10-digits? Are you allowing for + symbols for the international codes?
Can't pass a PhoneNumber to a function expecting an EmailAddress, for one, or mix up the order of arguments in a function that may otherwise just take two or more strings
void callNumber(string phoneNumber);
void associatePhoneNumber(string phoneNumber, Person person);
Person lookupPerson(string phoneNumber);
Provider getProvider(string phoneNumber);
I pass in "555;324+289G". Are you putting validation logic into all of those functions? You could have a validation function you write once and call in all of those functions, but why? Why not just parse the phone number into an already validated type and pass that around?
PhoneNumber PhoneNumber(string phoneNumber);
void callNumber(PhoneNumber phoneNumber);
void associatePhoneNumber(PhoneNumber phoneNumber, Person person);
Person lookupPerson(PhoneNumber phoneNumber);
Provider getProvider(PhoneNumber phoneNumber);
Put all of the validation logic into the type conversion function. Now you only need to validate once from string to PhoneNumber, and you can safely assume it's valid everywhere else.
That's going to be up to the business building the logic. Ideally those assumptions are clearly encoded in an easily readable manner but at the very least they should be captured somewhere code adjacent (even if it's just a comment and the block of logic to enforce those restraints).
And parentheses. And spaces (that may, or may not, be trimmed). And all kind of unicode equivalent characters, that might have to be canonicalized. Why not treat it as a byte buffer anyway.
If you are not checking that the phone number is 10 digits (or whatever the rules are for the phone number for your use case), it is absolutely pointless. But why would you not?
I would argue it's the other way around. If I take a string I believe to be a phone number and wrap it in a `PhoneNumber` type, and then later I try to pass it in as the wrong argument to a function like say I get order of name & phone number reversed, it'll complain. Whereas if both name & phone number are strings, it won't complain.
That's what I see as the primary value to this sort of typing. Enforcing the invariants is a separate matter.
In Southern California the "fast lane" is the medium speed lane, and the "slow lane" is the actual fast lane. It's where people tend to weave in and out of traffic at 15-25 mph speed differentials.
Here's my opinion: just use postgres. If you're experienced enough to not when I say that, go for it, the advice isn't for you. If you aren't, I'm probably saving you from yourself. "Reasonable scale" to these people could mean dozens of inserts per second, which is why people talking vagueries around scale is madenning to me. If you aren't going to actually say what that means, you will lead people who don't know better down the wrong path.
The high level idea is obvious but doing it is not easy. "Maybe agents should work in teams like humans with different roles and responsibilities and be optimized for those" isn't exactly mind bending. I experimented with it too when LLM coding became a thing.
As usual, the hard part is the actual doing and producing a usable product.
I think it's nearly impossible to "learn" to the same depth when someone else writes the code: it doesn't matter if its your teacher, friend, coworker, or AI writing the code. There absolutely is a difference between having to toil to come up with an answer, fail, fail some more, work through design flaws, then eventually come up with the right answer. You learn a lot in the process.
Versus someone or something giving you the, or even several, correct answers and you picking one. You are given what works. But you don't know why, and you don't know what doesn't work.
Learning from AI coding probably is somewhere between traditional coding and just reading about coding. I'm not sure which one it's closer to though.
However, it may not be necessary to learn to that depth now that AI coding is here. I don't really know.
reply