Hacker News new | past | comments | ask | show | jobs | submit | frenchy's comments login

This is just the modern version of the parable of the talents.


Electric motorized bicycles exist, they're just called motorcycles or mopeds. The whole point of an e-bike is the limiter, and size restrictions.


> the first Germany defeat

Assuming you're talking about stategic defeats, I'm pretty sure the Battle of Britain was earlier. Possibbly North Africa too, but that's more debatable.


Standards are great, in theory, but a standards group can easily be co-opted by throwing enough people and money at it. That's basically what happened with DRM.


> a standards group can easily be co-opted by throwing enough people and money at it.

The word 'easily' does a lot of work there. How easy? Many standards work well. The Internet, an incredibly successful engineering project, is built on standards.


But the popular tooling for it (e.g. Visual Studio), isn't.


Visual Studio Code is available for Linux and MacOS. As is Rider.


Yes and no. Youtube's moat is it's content creators. A gready algorithm might make them more money in the short run, but it would destroy their moat, as content creators migrate to other platforms.


Isn't this what the NSA is for? Also, I think we have plenty of reason to believe they regularly try to penetrate powerful companies, they just don't necessarily tell us when they do.


I've never heard anything about the NSA telling a company they have a security vulnerability. Have you?


Not the NSA, but I know of at least one time the FBI did: https://arstechnica.com/security/2024/01/chinese-malware-rem...



That was probably because the NSA and other critical government agencies use Microsoft Exchange and it was a bug found in the wild.

But if it wasn't a bug found in the wild, can you imagine the fights between the NSA red and blue teams on whether to alert Microsoft about it?


Probably not a lot at all tbf


I don't have citations on hand, but it's commonly held that NSA fixed the S-boxes in IBM's "Lucifer" cipher design for DES to improve its resistance to (then publicly-unknown) differential cryptanalysis.

Of course they also crippled the key length to 56 bits...


They absolutely have bugs up their sleeve, but if they tell the companies to allow them to fix them then they can't use the bugs for spying (or at least, not as effectively)


Yeah, but I'm pretty sure that's not what's happening here. What jccalhoun is describing is actually a reduction in the cost of living. The younger people from the city are moving from the city because the town is cheaper. They didn't move before the aparments were built because the detached homes in the suburb were too expensive.

What's happening is two things 1) that people in detached homes in the middle of town the who aren't willing to live in apartments are seeing costs go up (because their land is more valuable) and 2) more people from the town are working it the city.

Of these two thing, I'd say that #2 is generally bad, but also orthogonal to building apartments. It just happens to be that they often happen together.


> Branding makes structural typing work like nominal typing for the branded type only.

That's not quite true. Branding doesn't exist at run time, where as nominal typing usually does at some level. Classes exist at runtime, but most typescript types don't, so unless there's something specific about the shape of the data that you can check with a type guard, it's impossible to narrow the type.


> Classes exist at runtime

Not necessarily, depending on the language. Functional languages and system languages such as OCaml, Haskell, Rust, but also C (painfully) and C++ can represent wrapper types within a nominal type system at no runtime cost.


Haskell implements type classes via dictionary passing that don’t always get optimized away by the compiler so it does have a slight runtime cost:

https://okmij.org/ftp/Computation/typeclass.html#dict

In Rust, using trait objects also generates a vtable for dynamic dispatch so in that case traits are not fully erased:

https://web.mit.edu/rust-lang_v1.25/arch/amd64_ubuntu1404/sh...


My quotation was not good - I intended to reply to the argument that "nominal type do [exist at runtime] to some level". The newtype pattern in either Haskell or Rust is fully transparent at runtime.


As others have said, types don't necessarily exist at runtime. Types allow reasoning about the program source without executing it. Java is more the exception than the rule here; conventionally compiled languages such as C don't usually have types at runtime.


The key point here is that the formatter has to be sufficiently advanced to know to do the right thing the vast majority of the time. Once it gets there, and once you've gotten used to the code it produces, it's better. Note that the "prettier" formatter will do the right thing in JS here, at least with the default config. It will even switch "\"string\"" to '"string"' for you.

Linting is a bit of a different beast, because linting includes changes to the code behavior itself, not just syntax. In JS there are so many footguns, that linting can often be pretty involved/strict. I think most of the people who don't like linting in JS either aren't aware of the footguns, or don't do very much code review and haven't worried themselves much with "what sort of bizare and unusual ways can this fail" sort of a thing.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: