HN user

rpnx

200 karma
Posts6
Comments45
View on HN

It is worth noting that if the Air Conditioner is powered by electricity that came from solar panels, the net heat produced compared to letting the sun heat solar panel colored ground is exactly 0.

Air Conditioners do not produce a net heating effect unless you power them by burning fossil fuels.

GC was removed from the C++ standard in C++23 because all the compilers were like "hell no" and it was an optional feature so they could get away with not adding it. So this optional feature never actually existed and they removed it in later standards.

A document proposing terminology to describe 0-based indexes in unambiguous language.

For example, considering a sequence like [5, 4, 7, 8, 2]

What is the 4th element? 8, but if I asked what is the "0th element", you would answer 5, but that is the 1st element. The document introduces the terminology of the zerid element (0id element), oneid element (1id), etc. to handle 0-based indexing.

I think this honestly has more to do with moslty Chinese sellers engaging in review fraud, which is a rampant problem. I'm not saying non-Chinese sellers don't engage in review fraud, but I have noticed a trend that around 98% of fake or fraudulently advertised products are of Chinese origin.

If it was just because it was cheap, we'd also see similar fraud from Mexican or Vietnamese sellers, but I don't really see that.

I actually disagree. I think that people will pay more for higher quality software, but only if they know the software is higher quality.

It's great to say your software is higher quality, but the question I have is whether or not is is higher quality with the same or similar features, and second, whether the better quality is known to the customers.

It's the same way that I will pay hundreds of dollars for Jetbrains tools each year even though ostensibly VS Code has most of the same features, but the quality of the implementation greatly differs.

If a new company made their IDE better than jetbrains though, it'd be hard to get me to fork over money. Free trials and so on can help spread awareness.

This is a simple problem I have met and dealt with before.

The issue is the lack of synchronization between cancellation and not handling cancel failure.

All cancellations can fail because there is always a race when calling cancel() where the operation completes.

You have two options, synchronous cancel (block until we know if cancel succeded) or async cancel (callback or other notification).

This code simply handles the race incorrectly, no need to think too hard about this.

It may be that some io_uring operations cannot be cancelled, that is a linux limitation. I've also seen there is no async way to close sockets, which is another issue.

Lead is toxic at any dose.

This means is damages your neurons in any amount.

Contrast to say, copper, which doesn't start causing damage until levels exceed a certain tolerable threshold.

While lead is toxic at any amount, low amounts of lead cause low amounts of damage. It doesn't change the fact that the ideal exposure is 0 and over 99% of people have about 5 to 10 times the bond lead levels found in remains of our ancestors, and that even relatively low lead exposure levels from breathing lead in the air from just air pollution are linked to dramatically reduced IQ.

This is the root of the problem.

Take the whole "saturated fat is unhealthy" thing.

Here's what happened:

Study finds that unsaturated fat is healthier than saturated fat, but all fat is associated with lower mortality vs carbs.

Repeated as "unsaturated fat is healther than saturated fat".

Repeated as "saturated fat is unhealthy".

This conclusion isn't supported by any research compared to carbs(!).

Same-calorie diet of high fat is healthier than one based on carbs. But we are often taught otherwise.

The saturated fat is bad (wrong) consensus is reached like a game of telephone.

Agree. I work at Google. I promise nothing happens quickly. It can take over a week to set up a new SQL database & client. Half coding (don't get me started on boq...) and half data integrity and criticality annotations for the data...

I don't know what setting up a new domain is like but I can't imagine it's something you "just do".

Show HN: QWANJI 2 years ago

I made something a bit similar to this when trying to make a new shorthand. It was made by translating to stenotype and then following rules to convert the stenotype runes to a kanji like form. Eventually I decided it wasn’t faster than existing shorthand, mainly because of the mental overhead of converting to and from stenotype.

I never coded it (I only used it a few times for handwriting before I decided it was bad) but it might be a cool project.

The number of patents owned by startups is greatly dwarfed by the number owned by large companies. Furthermore, the competition opportunity for small businesses to offer similar products at lower prices greatly outweighs the value of patent invention.

Some people would say large businesses can make things cheap in a way that small businesses can't compete with. However, that turned out to not happen in practice as big companies chase huge profit margins, supported only by the government.

China doesn't have this problem the US does because they have weaker patent laws. Patents need to be eradicated ASAP or we will not be globally competitive. We are also harming humanity as a whole as the inventive utility of patents simply doesn't scale in proportion to the harms, with the large populations we have now, they are clearly harmful on balance.

The fundamental problem with patents is that the benefit has lower asymptotic complexity with respect to population size than than the harm does. When you exceed some population size, patents become harmful.

The utility of copying is N^2 since you have O(N) copiers and O(N) inventions to copy from.

The harm of patents is therefore O(N^2) since this is the copying that patents prevent.

What we find is that the benefits of patents seem to scale at most around some O(N /log N) ish metric. Doubling the population size increases the number of inventors, but the chance an invention was already invented by someone else increases as population size increases. Hence the benefits of patents scale worse than O(N). Applying that to the harm and we still get O(N(N/logN)) for harm and O(N/logN) for benefits. Clearly patents do not scale.

* Here I am using Log N as a substituite for the difficulty increase of finding an invention not already invented. This exact measure is difficult to estimate.

They didn't sack him, he quit for better pay.

In Japan companies rarely sack employees and employees rarely quit. People are expected to stay with the same company basically their whole life. That's why he didn't get fired for disobeying orders. Firing someone in Japan is somewhat socially taboo (just like quitting) and therefore rare.

In Japan, companies are considered to be like "family". It would be kind of a joke here in the USA, but in Japan there is a lot of loyalty in both directions.

Part of the reason they sued him is probably the butthurt of him quitting. Quitting, even for better pay, is kind of like a big "fuck you" in Japan.

I have a plug in hybrid. It can drive about 25 miles on electric then switches over to gas. 8.8 kWh @ $0.30/kWh amounts to around $0.10 per mile. Gas here is around $0.09/mile @ 52 mpg.

So, if electricity > approximately $0.30/kWh, then driving on electricity is more expensive. But if less than that electricity is cheaper.

Also most gas cars don't get 50mpg, since mostly only a hybrid can really get that. So if you look at 25mpg, it ends up more like $0.60/kWh as the break even point.

I think one common trait is that systems programming languages have pointers and manual memory management or ctor/dtor based memory management (as opposed to a garbage collector). Non-systems languages abstract away pointers with some kind of runtime.

Pointers cannot be escaped. They are how the computer actually works. Either you expose pointers to the user, and all the errors that can result, or you have an abstraction layer where the limited set of automatic transformations are known to be memory safe. Low level/systems languages operate at the pointer level, high level languages translate to pointers through a limited set of transformations that have been proven memory safe. Rust is a bit weird because it somehow figured out how to do manual memory management in a mostly safe way that didn't result in a huge amount of overhead. Basically Rust works like other systems programming languages that use pointers with the additional constraint that also you have to write "lifetimes" that formally prove to the compiler that your use of those pointers is safe. Think of it as writing C++ but also having to write a proof that your code is correct.