skysight-inc/HackerNews huggingface dataset:
Finally, im glad I’m not alone. When we were building SuperCMMS, we already had a few companies ready to pay us. So we needed a billing system from the get go. While we use Stripe, we still had to wrangle a lot of stuff (like taxes), since we wanted to integrating other payment gateways in future. To save time we decided to have “only a single plan - all features included”.

Now comes the unexpected part. People kept asking us why we have only a single plan. Maybe all of us are so used to multiple pricing plans on saas products. So we had to explain ourselves in the pricing FAQ’s.

https://supercmms.com/pricing
This is a good positive model of UB, fulfilling the compiler assumptions.
Rust either allows or traps on integer overflow depending on the mode. Either way it’s defined behaviour.
Sounds like proto-keto.

From experience if you just try Keto for a couple of months you start to realize how much sugar/carbs are in absolutely everything in the western diet.

Even though I don't practice it religiously I still don't eat 90% of the arbitrary carbs I used to consume. Easiest: not drinking Coke/Juice or anything besides water or zero-carb flavoured carbonated drinks (buy a Sodastream + $50 citrus press and add your own fruit/Erythritol), coffee or tea with stevia, etc.

That plus Allulose simple syrup or those White Claw style drinks:

https://www.wholesomeyumfoods.com/shop/syrups/simple-syrup/

https://www.amazon.com/s?k=Allulose (closest thing to sugar around for people who are picky, otherwise Monk Fruit is cheaper and widely available)

Food is much easier. Just don't eat lots of bread, noodles, and pasta.
Does Elm count as a language that does this? You can only code by transitioning state one at a time. Even when doing async calls.
Unless your website is some kind of game or application why the hell does it have 2 megs of JS? Remove your shitty tracking and ad code.
In the example, the crash occurred because the compiler removed the i<512 part because without overflow that condition is always true.
What phase are we seeing right now?
The big reason is that US has better choices. People don't understand the concept of risk and reward, you always put your assets on less risky and high reward projects. The only difference is that what's available to people are very different. Why would you invest there if you have better places to put your money? Companies are not stupid. US is high on the food chain.
I don't know what to expect exactly, but these numbers seem quite small. Wonder if bad actors are moving to other channels
Strange, works for me, and I have played it on three different days now... However it's a project of another HN user that they only mentioned in another thread, so it might still be work in progress.
Doesn't allow optimization enabled by this specific UB: Yes
Does't allow UB: Hard, because you probably need runtime checks.
And React/Redux :-)
You seem to think that prison time somehow rehabilitates people, but data simply doesn't back you up on that. People are categorically worse off and more likely to commit more serious crimes after being imprisoned.

If we want to lower crime, we need to address the source of the crime, and that's primarily poverty. There's plenty of research that shows strong correlation. Law & order approaches have historically been quite ineffective, and are very likely to help increase, rather than decrease crime.

This isn't to say there should be no crime enforcement, but concentrating on violent crime, and less on petty crime would be a step in the right direction. Hell, one of the most effective places we could set our sights is wage theft.
I LOVED Jet Grind Radio (Jet Set Radio here in the UK). That combo gameplay of doing cool tricks while completing the course was seriously addictive. Trickstyle did a vaguely similar thing - still doing cool tricks, but replace graffiti with racing.
You might like this book

https://natureofcode.com
I haven't bought a cucumber wrapped in plastic in years (I actively avoid them) and have thrown away maybe two cucumbers in the same time.

At this point, I think any plastic is a problem, and it needs very serious consideration whether plastic should be used. I'm fine with wrapping sterilized medical equipment in plastic. Crispbread, not so much.
Thanks for sharing. This had made me really think about how I can tackle billing in future.
Preparing a Pull Request for Apache NuttX RTOS
These also work on Clang.
(I'm a billing engineering team leader with more than 25 years experience.)

This is a wonderful example of how engineers underestimate the complexity of billing.

> Suddenly, months, years, calendars, etc... cease to matter

No they don't. You don't send a bill every hour, or even every day. Typically you invoice monthly. And if you invoice monthly, what date do you aggregate the invoice? Setting aside the obvious problem that months are not homogenous, do you start on the anniversary date of signup, or the start of the month? Well, anniversary date is generally better, because it spreads out payments, collections and cash flow over the whole month, which reduces a lot of effort in collections and finance, and reduces the impact of any issues - but it's also significantly more difficult to engineer; how do you bill February if they started billing on the 31st of January? Monthly billing is far easier from an engineering perspective, but is not generally the ideal method from a business operations perspective. And get this, if you start with monthly billing and have significant income, and then you want to change to anniversary billing, you get all kinds of income recognition (P&L) problems that you have to deal with; it's really complex.

And what do we mean by "signup", anyway? Do we bill services individually based on when they are created, or do we bill based on the account creation date? What if there is an account hierarchy?

Hourly or unit based billing does literally nothing to solve these problems, because they are endemic to the billing domain.

> Similarly, consumption-based plans are relatively straightforward. Simply multiply unit costs with the per-unit costs.

Right - and what happens when you raise or lower your prices? That has to happen at a particular point in time, which is typically in the future. What if we give tiered discounts (first 1000 minutes at 2c, next 1000 minutes at 1c)? In both cases, we no longer can keep a single per-unit cost, but rather we end up with a cost matrix, which can become really complex when you add other factors (such as discounting).

Also, what happens when you are charging, say, 5c per megabyte... and your incoming CDR feed gives you bytes? Do you configure this as 0.00000005 cents per byte? When do you do the rounding? On an hourly basis? Daily? Monthly? What do you display as the unit price to your users? What if another plan is charging 5c per Gigabyte?

> An example of a hard-to-solve essential complexity is currency conversions and taxation when dealing with international customers. That's an externally imposed set of problems that can't be hand-waved away.

Currency stuff should be very easy in practice, but I agree that tax is hard. That's why you need a multi-stage pipeline for invoice generation. But that's perhaps a story for another post...
I still play PSO. I play it weekly online with a small group of friends.

It’s amazing that most of the old Dreamcast online services are still available by hacks and enthusiasts
I came away thinking that it was impractical even in the long term after watching this:

https://m.youtube.com/watch?v=G-WO-z-QuWI
Why should the western do the dirty jobs? It is the same as different jobs taken by immigrates and locals. Why not selling a bag made by other people, slap on a logo and sell it for 99% profit?
Anything like this but for analog?
This website also looks very good (subjective of course).
It sounds like they had a brief service disruption and the underlying issue is already fixed. They just need to give the system time to flush out any questionable water. It's by no means ideal and seems like they should have had better backups (gravity, generator power) but doesn't seem to be a massive indictment of the system.
That was news to me, although I guess I'm not surprised. It's frustratingly difficult to buy groceries at the supermarket without plastic.
the major reason of currency weakness, like in any other country in this world right now, is US dollars. Chinese Yuan lost 15% - 20% value, Japanese Yen, Pound, Euros.....
D solved this particular problem by defining arithmetic as being 2-s complement, including wraparound behavior.
>the C standard does allow this

The C standard also allows doing it even when there is no UB. C gives implementations a ton of freedom.
I'm surprised it doesn't mention focus stacking
This immediately reminded me of After The Flood's "London Squared" D3 module for creation of various types of cartogram visualisations of London: http://tools.aftertheflood.com/londonsquared/
Yes there is. Compile with -fno-strict-overflow.
Yes, I realised my mistake. I meant its common association with Naziism.
>Linux kernel is now compiled with -fno-delete-null-pointer-checks

Like many other large C codebases, it also uses -fno-strict-aliasing and -fno-strict-overflow (which is a synonym for "-fwrapv -fwrapv-pointer").
Also: someone sends you a direct message, you reply, but you send the message to everyone :).
What was the emotion engine actually
It's 2022. It should be standard practice to build and test C and C++ cod with multiple compilers.

Wasting weeks on this bug is on the author
The post has been updated, but the original version (https://web.archive.org/web/20221127072237/https://yurichev....) had a second bug:

struct tmp* m_result_original=...;
struct tmp* m_result_my_version=...;
... memcmp(&m_result_original, &m_result_my_version, ...)

The `&` must be dropped in the call to memcmp (which the author did in the current version).

Ironically, GCC 12.2 warns about this error while clang doesn't :)

The warning message produced by GCC is "'memcmp(...)' specified bound 12 exceeds source size 8 [-Wstringop-overread]", and it is printed even without -Wall, but only when the third argument is `sizeof(struct tmp)` rather than `sizeof(struct tmp)!=0`.

But as @Stratoscope pointed out, memcmp() is still problematic if the struct has padding.
OK I'll play around with emulating that on my end, thanks.
Enjoy the demo of Mesa/Cedar then,

"Eric Bier Demonstrates Cedar"

https://www.youtube.com/watch?v=z_dt7NG38V4

One for Oberon,

https://www.youtube.com/watch?v=OJGnpmnXR5w

IBM Redbooks are a source of information for IBM i and z

https://www.redbooks.ibm.com/

And Burroughs is still sold as ClearPath MCP.

https://public.support.unisys.com/search2/DocumentationSearc...
> How does breaking an if statement the programmer added make the code faster? If they intended the check not to happen/be required, they wouldn't have written it.

See your problem is that you’re

1. not thinking like a compiler

2. and reasoning on an isolated example

The compiler does not “break an if statement”, the compiler uses the UB to limit the range of the input and output, it can then propagate this range analysis to see that the check is dead code, and so removes the dead code.

It’s common for users to write unnecessary or redundant checks, even more so because of inlining, and especially macros.

If you’re carefully checking for null in every function prologue, and the compiler in-line everything and knows the pointer is non-null, all checks are dead and can be removed. Which is what the compiler does. This reduces the amount of branches (and thus the space needed by the branch predictor), and reduces the amount of code meaning the new inlined function could fall below threshold and itself become a candidate for inlining.
I do not think there is a correlation between the amount of tracking and the quality of recommendations.

Your assumption is that it is in Google's interest to show you stuff that interests you. That is wrong. They just want to maximize the time you spend on their platform. These two are not necessarily the same.
Those are all problems which have been "solved" by many companies. I'm sorry but none of this screams complex to me, all your problems have 2-3 "correct" choices, or you could just copy what almost all big companies do.
Eh, I've worked on billing, payments and salary systems, some of these problems are not that awful. It sounds like the source of much of it is just classic underestimation of the amount of work & complexity to implement something. If someone gets away with saying "shouldn't be hard right?" to the point it dictates the size of the team (2 engineers? That's barely a team), then you're going to have problems.

Some of it comes down to picking the right tool for the job. The article doesn't touch on technology choice at all, but it matters. When I built a salary system, I deliberately chose a tech stack that had good numeric calculation support (so not JavaScript). These choices matter and have lasting impacts on your project. Same thing for handling dates, for example here .NET and Java have excellent standard library support for everything date related. Other languages, not so much.

Another point the article talks about is change: companies change how they bill over time; customers change their plans. Again there's nothing specific to billing systems here. All systems have to deal with change. All systems beyond a trivial size end up with migration scripts, and sometimes those scripts end up being productized and becoming buttons in dashboards.

I guess my main point here is don't underestimate what might seem to be an "ancillary" product when it's an essential service that makes sure cash keeps flowing. Treat every important project with the care and respect necessary. Allocate resources properly. Don't underestimate. Oh, and don't underestimate.
So why is water unsafe below a certain pressure?
https://www.iihs.org/news/detail/new-study-suggests-todays-s...

> In the Michigan crashes, SUVs caused more serious injuries than cars when impacts occurred at greater than 19 miles per hour. At speeds of 20-39 mph, 3 out of 10 crashes with SUVs (30 percent) resulted in a pedestrian fatality, compared with 5 out of 22 for cars (23 percent). At 40 mph and higher, all three crashes with SUVs killed the pedestrian (100 percent), compared with 7 out of 13 crashes involving cars (54 percent). Below 20 miles per hour there was little difference between the outcomes, with pedestrians struck by either vehicle type tending to sustain minor injuries.
wondering is there any upper bound on the error, e.g. is it possible to ever have a timing error of say 100 microsecond seconds.
Yes, although it was rewritten on Windows Vista, the NetBSD is no longer part of Windows.
AWS's EFS is mounted with NFSv4 on Linux instances. Had to fight against race conditions between clients recently (per client directory caches,) but that's a feature of NFS, not specifically v4.
Alternatively I would not trust myself with not doing that, which is why I don’t use C.
Google is so huge that, as we say in the UK, it doesn't know its arse from its elbow - the teams are so disparate that it would be difficult to coordinate. Besides which, the "other factors" that I mention heavily favour a site like YouTube, such as the enormous number of inbound links, to a point where they can ignore the inconvenient bits of Core Web Vitals.
No. Life was much easier a decade ago.
They probably have. They probably didn't get picked up by the "inauthentic" behavior spotters because they look authentic.
Apple TV has a feature that does this. It’s why I bought an Apple TV after having problems using a Roku in my small apartment.
How did she change her diet?
There are remnants left. My iPhone refuses Facetime unless on WiFi.
Atlassian Jira is a good example of that too. It is safer to click on a minefield than a Jira page.
WE ALREADY HAVE CELLOPHANE
No, the claim is that technical people which do not have a conflict of interest are more likely to share their real understanding.

Of course Solidity developers of the latest rugpull DeFi know very well what they are doing, but they are unlikely to come out in the open and confess it. Some do anonymously though, go read some Coinfessions horror stories.
Low-calorie diets are a poor gateway to weight loss and health, where low-carb counts tends to do the real work. Calorie-counting typically leaves people hungry when they should just be eating better food.

Mediterranean, paleo, vegetarian, low-calorie etc diets almost always achieve the same low-carb goals, but low-calorie is the least practical...while sadly also being the most popular.

Just telling people to "eat less" is never an effective solution. There's a severe lack of good studies showing low-calories actually lowers weight long-term. The fact this study has 25 people is typical.

If you can eat a stable amount of food until satiety (still not-excessive amounts) while still achieving the same health/weight goals then obviously that would be the best solution.

I've asked before on HN to send me a study showing low-calorie diets are effective at reducing weight longterm and I still haven't seen one. Yet low-carb and type 2 diabetes go hand-in-hand with other treatments (most importantly pre-diabetics which is critical).
This isn't even just affecting the web. In the macOS Ventura in Safari they added a new option in the context menu when "right" clicking on an image, something like "Copy subject" or whatever that means. The problem is that that option isn't there from the beginning, but it pops up 1-2 seconds after, as if they are doing some processing on the image. Now if you are in a shop for example with a list of products, or an article or whatever, anywhere where an image is linked to something else and try to open the context menu for opening in a new tab (yeah I do that more often than using the CMD click), if the image is towards the bottom and the context menu doesn't have enough room at the bottom and is rendered a bit higher than your click so that it fits in your viewport, you wait 1-2 seconds and Apple adds right at the end of the context menu another option that just moves all other options one slot higher, making you always click for example Open in new window instead of a new tab or whatever option was right under your intended click, as everything in the context gets shifted. I don't know how Apple didn't see this and I don't know who thought that adding another entry in the context menu after it's rendered initially is a good idea.
Japanese cubesat sends home pics from the far side of the Moon
Commercial UNIXes already had package management before GNU/Linux came up with dpkg, rpm and apt.
Compiler bugs are always a potential issue for fuckup.

Hell, rust has had codegen issues because it extensively leveraged features which are almost non-existent in C, and thus were little exercised and poorly tested.
After seeing billing done right, I cringe every time I see billing done wrong.

For example, people building foreign keys to prices and receipt items. In what cases do you expect to retroactively change what you charged all customers? Copy that data to the receipt item, don’t give your accountant a headache and heart attack when you change pricing. I’ve also seen people using those same kinds of rows to determine what features a user gets access to. Don’t do that, use capabilities/roles. When a payment succeeds, update the user’s capabilities. When a payment fails, remove capabilities. This also allows support to just give a customer capabilities without a line item or changing their plan, because some customers are just annoying and it is less expensive to give them a feature. It also allows more easily selling custom-tailored solutions to bigger clients since the features aren’t linked to line items.

This article is more about usage-based billing, which is probably harder to get right, but feature-based billing is something I’m more familiar with and it’s so annoying to see all the ways people will fuck it up.
just in case someone from Amazon owned Twitch.tv reads this in the future

First issue is that it shows the controls for the video, and allows you to click on them and shows you them as clicked or changed, but when the video loads it resets them.

So if you want to reduce VOLUME or mute things before video loaded. Give it a try, looks like it works, nope, too bad, it's reset. Same with the PAUSE button. Nope, it will fool you into thinking you have paused it but it will actually autoplay the video. Basic essential functionality in a video player rendered useless.

Secondly is the Setting menu to reduce / change quality or speed up the video. Here menu items load in after the menu is first open, even after the video has loaded. So you go to change something useful but nope you accidentally click the report button or something. You literally have to open the menu, wait a couple of seconds and then you can click on the option you want.

Now there was a similar issue with stuff not loaded, underneath the video player, where the user would click something near the follow/unfollow but they would accidentally unfollow the user. Now they added a confirm dialog, so at least that's an improvement.
I would've made this same argument a year ago.

Today I think it's morally acceptable to circumvent tracking, advertising, etc. for behemoths like YouTube, Google, etc. They are simply too powerful, and have too much mindshare. There's nothing close to YouTube in terms of ubiquity. I don't have any sympathy for a monopoly, and I hope that YouTube's days are numbered so that a more open alternative like PeerTube can take its place.

My only real concern is channel owners. I want them to be able to be reasonably compensated for their work today.
This is a valid technique if you do cold extraction (e.g. cold brew). I often reuse coffee grounds and mix them with fresh coffee when cold brewing with no particular downsides.

Cold brewed coffee also lasts much longer before going into "tastes like old coffee"-territory, you can have it in the fridge for weeks while hot brewed coffee can taste bad after a few hours already. It is said that the acids in the bean play a role in this, and those acids are not extracted during cold brewing.

There is people experimenting with ultrasonic extraction processes as well.
The lesson is you shouldn't use standard C, until the standard is fixed. Until then, compile with -fno-strict-overflow, like I do.
That's better than adding my extraneous terms. How did you add the programming language filter? I've now also noticed there's a "programming" category which perhaps is similar but looks different to your link (https://trends.google.com/trends/explore?cat=31&q=nim,zig#TI...)
The program can logically undo the call to fflush, too. Mainly by not dispatching it at all–UB is a global program attribute, at least currently. (People have made proposals to change this, but I don't think they have gone anywhere.)
According to this [1], the Equilibrium Lunar-Earth point 6U Spacecraft (EQUULEUS) cubesat is steam powered.

> After flying past the Moon, EQUULEUS was pointed at the second Earth-Moon Lagrange point (EML2). To get there it used an engine named AQUARIUS (AQUA ResIstojet propUlsion System) that uses water as fuel. The craft uses waste heat from communications kit to heat the water into steam that is squirted out to produce thrust.

[1] https://www.theregister.com/2022/11/28/asia_tech_news_brief/
No he created a framework for explaining the behavior of quantum systems moving at relativistic speeds, which was already being observed to diverge from theory in the measurement of cosmic rays. His equation implied the existence of antimatter, which was then looked for and found, but that was more of a happy accident.