MurphyA/hacker-news huggingface dataset:
by pas | 2025-08-30 09:23:51+00:00
So if you put up a bridge, people start using it, and you one day realize it's too much work to maintain, then it maybe the responsible thing would be to engage with the community, maybe someone will step up to maintain it, not to just blow it up one day without not much of a warning.

Sure, in this case the bridge is still there, and it started as a toll-bridge with free lanes. Now the free lanes are closing.

Crying orphans will be stranded on one side and their mothers bereaved on the other side, corporations will starve without new updates, millions of innocent businesses will wither away all because *they* closed the free lane without a consultation first, and with just one month notice. A total cybercide.

...

OSI licenses should come with indicators to signal affiliations with a preferred theory of justice, so when the eventual grievance event triggers people will have the correct framing at hand.

...

Anyway, as always, https://www.broadcom.com/company/corporate-responsibility is pretty clear on the matter!
by zozbot234 | 2025-08-30 09:24:15+00:00
> Fun fact, but there's essentially zero correlation between income inequality & wealth inequality- and the Nordics have some of the highest wealth inequality in the world.

If there's so little correlation between income inequality and wealth inequality, why are we even supposed to care about wealth inequality? That wealth is essentially frozen in place. It's hopefully being invested in sensible ways, but no one sensible is going to spend it down anytime soon. The thing with wealth is that once you spend it, it's gone for good - so wealth accumulation, especially on any kind of multi-generational scale, tends to be associated with remarkable frugality.
by EliRivers | 2025-08-30 09:24:43+00:00
At my last employer, some of our customers used our software to run systems of which the hardware value alone exceeded the entire market cap of my employer. They ran systems with a physical footprint many many times the area of my employer's leased offices and workspaces. The physical hardware devices that our software ran alone exceeded the value of my employer's market cap; just buying one of each would have been an enormous expense, ignoring that many of them were no longer available new and some of them were decades old, sitting alongside hardware that was made in the last six months. All the physical hardware working in synchronicity, linking up with similar sites in two other locations around the world, handing off to each other to follow the sun.

It would be nice to fully test system behaviour, but to do so would have bankrupted the company long before even coming close.
by nis0s | 2025-08-30 09:25:09+00:00
I think it’s the same feeling that every generation experiences when there’s a cultural shift. For example, people during the Industrial Revolution weren’t any less horrified by the machines, see Luddites. But I think this feeling is related to adjusting to the loss of a familiar world, and using humor or insight to adapt to a new one, so it’s not about technological changes per se. To me this phenomena is an extension of surrealism and absurdism.
Show HN: FOSS Compass and Navigation App
by nativeforks | 2025-08-30 09:27:23+00:00
Hello everyone,

I'm excited to share MBCompass with new improvements, which is a modern, free, and open source Compass and Navigation app without Ads, IAP, or Tracking.

That's support Compass and Navigation features with being lightweight and simple!

I built MBCompass, not just another FOSS compass app; it bridges the gap between a compass and a full navigation app

https://github.com/CompassMB/MBCompass

Features:

Shows clear cardinal direction and magnetic azimuths.

Displays magnetic strength in µT.

Live GPS location tracking on OpenStreetMap.

Sensor fusion for improved accuracy (accelerometer, magnetometer, gyroscope).

Light and dark theme support is controlled via Settings.

Keeps the screen on during navigation.

Landscape orientation support.

No ads, no in-app purchases, no tracking.

Runs on Android 5.0+

full list available on website

Even with all these features, MBCompass was just "1.35MB APK size" with no ads, no IAPs, and no trackers

For more info: https://compassmb.github.io/MBCompass-site/
by ffsm8 | 2025-08-30 09:27:57+00:00
Let's say you have a function thats being called to compute a state using hundreds of attributes spread across tens of different objects, and various different levels of nesting.

Now, you could create hundreds of different integration tests for each branch of the computation..., most of which will assert the same final output state, but achieved through different transitions

Or you can make some integration tests which make sure the logic itself is being called, and then only unittest the specific criteria in isolation.

What you're talking about is likely founded in either frontend testing (component tests vs unittest) or backends which have generally pretty trivial logic complexity. In these cases, just doing an integration test gets it done for the most part, but as soon as you got multiple stakeholders giving you sperate requirements and the consumed inputs get bigger and multiply ... Testing via integration tests gets essentially impossible to do in practice
by juped | 2025-08-30 09:30:24+00:00
No it isn't, their strategy is great at increasing the rate at which they select those deadly "bad hires". There's just an insane amount of risk in doing these sorts of tech interview things; code up a quick monte carlo simulation to convince yourself if you like. It's just that the risk doesn't fall on the improperly aligned humans conducting the interview, it's offloaded onto the company.
by rebane2001 | 2025-08-30 09:30:36+00:00
Original HN title: You no longer need JavaScript: an overview of what makes modern CSS so awesome

Changed HN title: Aspects of modern HTML/CSS you may not be familiar with

As the author, I don't really have a problem with either title :).

Externally, the title is meant to be augmented by the summary (as seen in the original HN title), and I much prefer that over just the title alone by itself. I usually make my titles fun and catchy, and a part of the story I want to tell, while the summary's there to provide a more neutral and accurate overview of the post before people click on it.

The post's story doesn't make sense with the changed title, but that's not an issue because if people click on the link they'll see the original title on the website. I don't mind the title of an external link being more descriptive.
by integralid | 2025-08-30 09:30:36+00:00
Integration tests are as old as unit tests, and both predate their names. When exactly were unit tests made redundant? I don't see the point of your quip without a trace of actual argument.

I feel like I don't write enough tests, and when I do they're usually integration tests, but some things - algorithms, complex but pure functions, data structures - absolutely deserve their unit tests that can't be reasonably replaced by integration/e2e tests.
by yakshaving_jgt | 2025-08-30 09:31:07+00:00
No they don’t.

If you’re, for example, writing a web application, and you have an endpoint which parses some data from the request and then responds with the result of that computation, why the hell would you test the fine-grained behaviour of your parser by emulating HTTP requests against your server?

Testing the parsing function in isolation is orders of magnitude cheaper.
by fuzzfactor | 2025-08-30 09:31:45+00:00
Actually the "real thing" is a completely natural product, not synthetic, but processed from agricultural materials using chemicals.

I think we all need to choose our environment carefully.

If I visited Nantucket I wonder if I would be able to tell that there was a more popular drug culture than average, since that's got to be largely underground. Well this is an "upper-crust" place and they should be able to afford it financially if that's what they want. But it's too toxic to actually be afforded healthwise and sometimes the only way people find out is after they have more than enough money to spend on it. So they consume more than enough and you can really tell the toll it takes.

It would be interesting to compare wastewater readings from desirable destinations, and I would prefer to be where the readings are not elevated myself. Even if you can not see signs on the surface, the stronger the underground influence the worse it can still be and you may not know why.

I like an environment where it's more natural to have an uplifting trend with no toxicity or stimulants involved, not even caffeine, so I'd like see those readings too. I would probably fit in better to some degree. Some doctors have said that milligram for milligram caffeine is equally as safe as cocaine.

I'm no angel, I still occasionally handle toxic petrochemicals and I sure try to avoid ingesting anything toxic intentionally. But I slipslide real bad and end up drinking one or two beers a week, all in one night :)

"She's gonna listen to her heart . . ."

-- T. Petty
Show HN: Warrify – Stop losing money on expired warranties
by akash-bilung | 2025-08-30 09:32:25+00:00
Every year, people lose thousands because they forget warranty dates or can't find receipts. I built Warrify to fix that.

AI receipt scanning - snap/upload a receipt, and it extracts product + warranty info instantly. Unlimited warranty storage - keep all your purchases organized in one place. Smart reminders - get notified before warranties expire. Data export - your data stays yours. Calendar sync (coming soon) - manage warranties alongside your schedule.

Stop losing money on expired warranties. Protect your purchases effortlessly.

Try it here: warrify.app
by dcminter | 2025-08-30 09:32:43+00:00
Exactly; a very occasionally flakey test may be tolerable but is almost by definition not well written.

The commonest type I see is one where instead of waiting until expected behaviour is exhibited with a suitable timeout, the test sleeps for some shorter period and then checks to see if the behaviour was exhibited.

These tests not only flake occasionally when the CI server or dev laptop is under unusual load, but worse, accumulate until the test suite is so full of "short" sleeps that the full set of test takes half an hour to run.

Often the sleeps were seen as being acceptable because the plan was to run the tests in parallel, but then the increased load results in the tests becoming flakey.

Once you have dozens of these flaking tests for this or other reasons, it becomes a project in itself to refactor them back to something sane.

Flakey tests should always be fixed immediately unless you're in the middle of an incident or something.
by mingtianzhang | 2025-08-30 09:33:03+00:00
We are always looking for representations that can capture the meaning of information. However, most representations that compress information for retrieval are lossy. For example, embeddings are a form of lossy compression. Similar to the no-free-lunch theorem, no lossy compression method is universally better than another, since downstream tasks may depend on the specific information that gets lost. Therefore, the question is not which representation is perfect, but which representation is better aligned with an AI system. Because AI evolves rapidly, it is difficult to predict the limitations of the next generation of LLMs. For this reason, a good representation for information retrieval in future LLM systems should be closer to how humans represent knowledge.

When a human tries to retrieve information in a library, they first locate a book by category or by using a metadata keyword search. Then, they open the table of contents (ToC) to find the relevant section, and repeat this process as needed. Therefore, I believe the future of AI retrieval systems should mimic this process. The recently popular PageIndex approach (see this discussioin: https://news.ycombinator.com/item?id=45036944) also belongs to this category, as it generates a table-of-contents–like tree for LLMs to reason over. Again, it is a form of lossy compression, so its limitations can be discussed. However, this approach is the closest to how humans perform retrieval.
by imiric | 2025-08-30 09:33:12+00:00
> You mean just like unit tests where every useful interaction between units is mocked out of existence?

Sure, that is a risk. But not all unit tests require mocking or stubbing. There may be plenty of pure functions that are worth testing.

Writing good tests requires care and effort, like any other code, regardless of the test type.

> And that's the main issue: people pretend that only unit tests matter, and as a result all other forms of testing are an afterthought.

Huh? Who is saying this?

The argument is coming from the other side with the claim that unit tests don't matter. Everyone arguing against this is saying that, no, all tests matter. (Let's not devolve into politics... :))

The idea of the test pyramid has nothing to do with one type of test being more important than another. It's simply a matter of practicality and utility. Higher-level tests can cover much more code than lower-level ones. In projects that keep track of code coverage, it's not unheard of for a few E2E and integration tests to cover a large percentage of the code base, e.g. >50% of lines or statements. This doesn't mean that these tests are more valuable. It simply means that they have a larger reach by their nature.

These tests also require more boilerplate to setup, external system dependencies, they take more time to run, and so on. It is often impractical to rely on them during development, since they slow down the write-test loop. Instead, running the full unit test suite and a select couple of integration and E2E tests can serve as a quick sanity check, while the entire test suite runs in CI.

Conversely, achieving >50% of line or statement coverage with unit tests alone also doesn't mean that the software works as it should when it interacts with other systems, or the end user.

So, again, all test types are important and useful in their own way, and help ensure that the software doesn't regress.
by roryirvine | 2025-08-30 09:33:59+00:00
In trixie, libasound2 exists as a virtual package (ie. libasound2t64 provides libasound2) so this ought not be a problem.

It should definitely work with an 'apt install firefox' from the cli - perhaps you're using a different package management frontend? If so, installing libasound2t64 first should force it to see the virtual package - but it might be worth filing a bug report as this really shouldn't require manual intervention...
by austin-cheney | 2025-08-30 09:34:06+00:00
Simplicity applies universally and is almost always more correct. Simple just means the option of fewer steps. Simple does not mean easy, so therefore simplicity as a principle is always objective and measurable.

Where people fail on this most frequently is reasoning in first person pronouns whether explicitly or implicitly and whether or not stated, thought, or considered. Simplicity is but merely the result from a comparison of measures. It’s not about you and has nothing to do with your opinion.
by alecco | 2025-08-30 09:36:31+00:00
Absolutely. That whole region (let's say Balkans+) has several different groups of people who are very different culturally and ethnically. And for some reason the press would blame whole countries for the crimes of specific minority groups. "Bulgarian gangs stealing cars", "Romanian gangs exploiting the UK benefits system", and so on.

I lost count of how many times I had to clarify to friends and family: "No, that's not representative of that country at all. I have friends and coworkers from there who are very well educated, hard workers, and good people. And you couldn't tell them apart from the rest of Europeans. Many of them won math/programming competitions and are smarter than me."

While most companies have a negative image of those countries due to media portrayals, investment banks in London figured it out so they fly whole recruiting teams there to hire graduates, _every year_. Some Big Tech companies figured this out, too. I've seen it first hand.
by dns_snek | 2025-08-30 09:37:05+00:00
Slightly tweaked, a leaderboard of em dash containing comments after ChatGPT release, limited to users who used them in fewer than 1% of comments before ChatGPT release, and who posted at least 200 comments before and after ChatGPT release. Data is recent (August 28th).

Of course this doesn't mean they're using ChatGPT either, they could've switched devices or started using them because they felt like it.

# user before_chatgpt after_chatgpt 1 fao_ 9/1777 (1 %) 36/225 (16 %) 2 tlogan 1/962 (0 %) 59/399 (15 %) 3 whynotminot 1/250 (0 %) 36/356 (10 %) 4 unclebucknasty 13/2566 (1 %) 38/378 (10 %) 5 iLemming 0/793 (0 %) 61/628 (10 %) 6 nostrebored 10/1045 (1 %) 32/331 (10 %) 7 freeone3000 0/2128 (0 %) 74/791 (9 %) 8 pdabbadabba 6/932 (1 %) 20/225 (9 %) 9 thebooktocome 4/632 (1 %) 18/208 (9 %) 10 tnecniv 0/671 (0 %) 34/446 (8 %) 11 dkersten 39/5092 (1 %) 24/318 (8 %) 12 stared 8/1565 (1 %) 29/392 (7 %) 13 ETH_start 3/385 (1 %) 75/1029 (7 %) 14 tcbawo 2/792 (0 %) 15/218 (7 %) 15 jbm 2/406 (0 %) 22/350 (6 %)

Query [2]:

WITH by_user AS ( SELECT `by` AS user, COUNTIF(text LIKE '%—%') AS match_count, COUNT(*) AS total_count, (timestamp >= '2022-11-30') AS after_chatgpt FROM `bigquery-public-data.hacker_news.full` WHERE type = 'comment' GROUP BY user, after_chatgpt ), combined AS ( SELECT user, MAX(IF(NOT after_chatgpt, match_count, 0)) AS match_before_chatgpt, MAX(IF(NOT after_chatgpt, total_count, 0)) AS total_before_chatgpt, MAX(IF(after_chatgpt, match_count, 0)) AS match_after_chatgpt, MAX(IF(after_chatgpt, total_count, 0)) AS total_after_chatgpt, FROM by_user GROUP BY user HAVING total_before_chatgpt >= 200 AND total_after_chatgpt >= 200 ), with_fractions AS ( SELECT *, SAFE_DIVIDE(match_before_chatgpt, total_before_chatgpt) AS fraction_before_chatgpt, SAFE_DIVIDE(match_after_chatgpt, total_after_chatgpt) AS fraction_after_chatgpt FROM combined ) SELECT user, FORMAT('%d/%d (%.0f %%)', match_before_chatgpt, total_before_chatgpt, ROUND(fraction_before_chatgpt*100)) AS before_chatgpt, FORMAT('%d/%d (%.0f %%)', match_after_chatgpt, total_after_chatgpt, ROUND(fraction_after_chatgpt*100)) AS after_chatgpt FROM with_fractions WHERE fraction_before_chatgpt < 0.01 ORDER BY fraction_after_chatgpt DESC LIMIT 15

[1] https://news.ycombinator.com/item?id=45072937

[2] https://console.cloud.google.com/marketplace/product/y-combi...
by makeitdouble | 2025-08-30 09:37:25+00:00
> the code is only as good as its documentation

This heavily depends on your niche I think. If you're writing closed source vendor software and your client's only guiding light is your documentation, it's 100% true.

If you're working on a 5 people project that evolves at a fast pace, and everyone touching the code is expected to be familiar with the domain and operations, you'll mostly leave comments (todos, meta info, external ticket links etc), not documentation per se.
by hankman86 | 2025-08-30 09:37:50+00:00
We just did the opposite and ripped up our solar hot water system. We have a metal roof and a salt water pool. Problem is that these systems can and do leak. Salt water on a metal roof makes creates rust.

With photovoltaic panels being dirt cheap, we decided to rather heat our pool with a heat pump that is powered by our own electricity.
by mpweiher | 2025-08-30 09:37:53+00:00
Yet, many times a lot of that scale and complexity is accidental.

Case in point: when I joined the BBC I was tasked with "fixing" the sports statistics platform. The existing system consisted of several dozen distinct programs instantiated into well over a hundred processes and running on around a dozen machines.

I DTSSTCPW / YAGNIed the heck out of that thing and the result was a single JAR running on a single machine that ran around 100-1000 times faster and was more than 100 times more reliable. Also about an order of magnitude less code while having more features and being easier to maintain expand.

https://link.springer.com/chapter/10.1007/978-1-4614-9299-3_...

And yeah, I was also extremely wary of tearing that thing down, because I couldn't actually understand the existing system. Nobody could. Took me over half a year to overcome that hesitancy.

Eschew Clever Rules -- Joe Condon, Bell Labs (via "Bumper Sticker Computer Science", in Programming Pearls)

https://tildesites.bowdoin.edu/~ltoma/teaching/cs340/spring0...
by ljosifov | 2025-08-30 09:39:11+00:00
I think you are correct there - the majority of the public don't care. They just try to get about doing their daily business and act the best they can under circumstances. So we just click "Accept" to any popup banner make it go away, accept "All cookies" 100 times every day, use Google mail/map/photos/drive and that all involves giving away data, even if in words we say we don't want to give data. So yes obviously the public by necessity act in a rational way, doing cost-benefit analysis. While a cadre of privacy obsessives have made my life worse by lobbying and having their bad ideas codified in the UL laws. Wrote about my experience in the UK medical systems here https://news.ycombinator.com/item?id=45066321
by meheleventyone | 2025-08-30 09:39:22+00:00
What I’d suggest is taking a look through the games published by a company like Raw Fury that has a stellar reputation. There are plenty of good games by that definition that didn’t do well commercially on their books.

https://rawfury.com/

For one other example I know of because friends made it is Phantom Spark: https://store.steampowered.com/app/1924180/Phantom_Spark/

Making a good game is table stakes for success not a guarantee.
by fuzzfactor | 2025-08-30 09:39:31+00:00
Yes, I would say do the simplest thing and it could possibly work.

If it doesn't, go from there whether you need to find an alternative or add another layer of complexity.

I think when complexity does build, it can snowball when a crew comes along and finds more than could be addressed in a year or two. People have to be realistic that there's more than one way to address it. For one it could be a project to identify and curtail existing excess complexity, another approach is to reduce the rate of additional complexity, maybe take it to the next level and completely inhibit any further excess, or any additional complexity of any kind at all. Ideally all of the above.

Things are so seldom ideal, and these are professionals ;)

No matter what, the most pressing requirement is to earnestly begin mastering the existing complexity to a pretty good extent before it could possibly be addressed by a neophyte. That's addressing it right there. Bull's-eye in fact.

Once a good amount of familiarity is established this could take months to a year(s) in such a situation. By this point a fairly accurate awareness of the actual degree of complexity/debt can be determined, but you can't be doing nothing this whole time. So you have naturally added at least some debt most likely, hopefully not a lot but now you've got a better handle on how it compares to what is already there. If you're really sharp the only complexity you may add is not excess at all but completely essential and you make sure of it.

Now if you keep carrying on you may find you have added some complexity that may be excess yourself, and by this time you may be in a situation where that excess is "insignificant" compared to what is already there, or even compared to what one misguided colleague or team might be routinely erecting on their own. You may even conclude that the only possible eventual outcome is to topple completely.

What you do about it is your own decision as much as it can be, and that's most often the way it is bound to always increase in most organizations, and never come down. So that's the most common way it's been addressed so far, as can be seen.