MurphyA/hacker-news huggingface dataset:
by tzs | 2025-10-04 00:25:30+00:00
Nonsense.

• We know the effects of CO2 on the transmission of electromagnetic radiation and how this varies by frequency. Same for the other gases in the atmosphere.

• We know how much energy is coming into the system from solar radiation, which we also know accounts for almost all incoming energy. We know the frequency distribution of this energy.

• We can measure the outgoing energy, and see that there is an imbalance with incoming higher than outgoing.

• We can measure incoming and outgoing at the surface, and at various levels in the atmosphere, to track down where that net energy increase is ending up. Infrared is in the frequency range that CO2 blocks.

• We can measure incoming and outgoing energy at various levels in the atmosphere and measure temperature and see that blocking the outgoing infrared heats the atmosphere.

• We can see that this heating effect is a function of CO2 concentration, which he can observe is going up over time, and we can see that the amount of heating increase over time closely matches the amount of heating we would expect from the increasing CO2.

The above just takes lab work (e.g., characterizing how various gases affect radiation transmission), measurements of incoming and outgoing energy flow, spectrum, and temperature of the system as a whole (satellites can do this) and at the surface and at various layers of the atmosphere.

That shows that warming is occurring, and it is almost all due to increasing greenhouse gases.

That doesn't show that humans are responsible for this increasing gases. For that we have:

• Carbon comes in different isotopes. There is an isotope with a half-life of about 5700 years that is created in the upper atmosphere from cosmic rays and then spreads throughout the atmosphere. The other two isotopes common in the atmosphere are stable. By looking at the ratios of carbon isotopes in atmospheric CO2 we can determine that the large increases in atmospheric CO2 come from sources that have little or none of the radioactive carbon.

Living things and dead things that have not been dead for a very long time do have significant amounts of the radioactive isotope because living (this is the basis for carbon dating). That lets us rule out things like wildfires as a significant contribution to the increases CO2.

The major ways to get excess stable carbon isotopes in the atmosphere are volcanoes and digging up and burning fossil fuels. We know that most of the increase comes from fossil fuels rather than volcanoes or other geological activity because:

• We know how much fossil fuels are burned each year and so can calculate how much carbon that will release into the atmosphere and that accounts for almost all of the observed excess stable carbon.

• We can monitor volcanic activity and see that it is not high enough to be a major contributor. Maybe we've missed a lot of volcanoes or other geological sources, but if we have we know that they can't be omitting much because the ones we do know about plus the amount from our known fossil fuel use accounts for almost all of the observed excess.
by harrall | 2025-10-04 00:26:07+00:00
Yeah if you can’t justify a >$200 inkjet, you may not need an inkjet.

Order photos from a store instead of printing them.

Get a laserjet if you just want document printing at home.

If you are doing crafts, then buy a nice inkjet. The nice inkjets pay for themselves past some volume because (1) OEM ink is actually relatively cheap and (2) they are reliable.
by danabramov | 2025-10-04 00:26:16+00:00
Every commit in your repo is signed with your private key which stays on your hosting. (You also can get another special key for your identity that would let you force-change hosting if your hosting gets adversarial.) Changes from your hosted repository get transmitted as signed commits (kind of like Git) so they can be verified by those receiving the retransmission against your public key.
by flare_blitz | 2025-10-04 00:26:37+00:00
I also hope this proposal succeeds, but I'm not optimistic. This will break tons of code and introduce a slew of footguns. Import statements fundamentally have side effects, and when and how these side effects are applied will cause mysterious breakages that will keep people up for many nights.

This is not fearmongering. There is a reason why the only flavor of Python with lazy imports comes from Meta, which is one of the most well-resourced companies in the world.

Too many people in this thread hold the view of "importing {pandas, numpy, my weird module that is more tangled than an eight-player game of Twister} takes too long and I will gladly support anything that makes them faster". I would be willing to bet a large sum of money that most people who hold this opinion are unable to describe how Python's import system works, let alone describe how to implement lazy imports.

PEP 690 describes a number of drawbacks. For example, lazy imports break code that uses decorators to add functions to a central registry. This behavior is crucial for Dash, a popular library for building frontends that has been around for more than a decade. At import-time, Dash uses decorators to bind a JavaScript-based interface to callbacks written in Python. If these imports were made lazy, Dash would break. Frontends used by thousands, if not millions of people, would immediately become unresponsive.

You may cry, "But lazy imports are opt-in! Developers can choose to opt-out of lazy imports if it doesn't work for them." What if these imports were transitive? What if our frontend needed to be completely initialized before starting a critical process, else it would cause a production outage? What if you were a maintainer of a library that was used by millions of people? How could you be sure that adding lazy imports wouldn't break any code downstream? Many people made this argument for type hints, which is sensible because type hints have no effect on runtime behavior*. This is not true for lazy imports; import statements exist in essentially every nontrivial Python program, and changing them to be lazy will fundamentally alter runtime behavior.

This is before we even get to the rest of the issues the PEP describes, which are even weirder and crazier than this. This is a far more difficult undertaking than many people realize.

---

* You can make a program change its behavior based on type annotations, but you'd need to explicitly call into typing APIs to do this. Discussion about this is beyond the scope of this post.
by array_key_first | 2025-10-04 00:26:45+00:00
It's because we've pushed and pushed so much for simplicity and dumbing things down that we've obliterated any semblance of confidence.

When Windows puts up an error message like 'oopsy doospy window's made a fucky wucky!" I don't feel safe! I don't trust this magic box!

Modern software will just lie straight to your face and hide things from you. Like the autosave thing. People don't trust it because it lies. The saving stuff is hidden away, and if it says 'saved', it might not be!

Which, great, fantastic, amazing - when it works. When it doesn't, we don't get any feedback. Things just start magically breaking. Things become unpredictable. And that's scary. We lose confidence in the system.

Like, imagine you have a car with lane keep assist. Lane keep assist makes mistakes, sure. But it beeps, it says "hey we're doing this", and you can trivially override it.

Imagine it didn't do that. Imagine it didn't beep, maybe you didn't even know about the system. Imagine you can't turn it off, or imagine you can't override it. You're just driving one day... and then the car is veering off the road. You push the steering wheel to the right, but it keeps going to the left. How much confidence would you have in that car? Would you get in it again?

That's basically modern software UX in my eyes.
by measurablefunc | 2025-10-04 00:27:14+00:00
It's not possible to understand the world from just videos. This is a basic information theoretic argument that anyone should be able to derive for themselves. There is no mapping from pixels in video to principles about physical objects that can be meaningful in any real sense. There is no way to derive conservation of mass & energy no matter how many thousands of years of pixels are analyzed. An obvious concrete example (pun intended) is deriving the weight of a brick from just video observation. It can't be done because pixel measurements are not sufficient for deriving the mass of an object.
by amscanne | 2025-10-04 00:27:27+00:00
Are you being objective or just romanticizing the past?

Just to use your example: YouTube is filled with talented writers and storytellers, who would have never been able to share their content in the past. *And* the traditional media complex is richer than ever.

I don’t think average quality matters. Just what you want to consume.

If anything, I’d be more open to the opposite argument. Media is so much richer and more engaging that it actually makes our lives worse. The quality of the drugs is too high!
by sgc | 2025-10-04 00:27:30+00:00
I don't use Android swipe gestures but I presume they would work in FF too. Nonetheless, we should avoid posting "it works in Chrome" as an answer to anything.

I have a deep-seated hatred for Chrome-only devs - not least of which is because it has contributed to the situation we are in, where Google is taking the "my way or the highway" approach to Chrome and adblockers, Android is locking us out of sideloaded apps, etc. Test at least in Chromium and FF as a bare minimum. Submit condescending bug reports to those stupid react components that break entire websites and nobody bothers to check, etc.
by MathMonkeyMan | 2025-10-04 00:27:35+00:00
It doesn't understand anything. Yet if you prompt it with a question about what it understands, its output is consistent with something that understands.

Text in, text out. The question is how much a sequence of tokens captures what we think a mind is. "It" ceases to exist when we stop giving it a prompt, if "it" even exists. Whether you consider something "AI" says more about what you think a mind is than anything about the software.
by avianlyric | 2025-10-04 00:28:16+00:00
Yes the EMV standard has offline card payments baked into it, and most banks in the EU and UK used to use offline transactions for contactless.

Your experiences in the UK are almost certainly linked to the card issuer you were using (was it a Monzo card by any chance), and nothing to do with it being the UK. The vast majority of the legacy banks have always used offline transactions for contactless.

However there has been a bit of shift towards online transactions, driven by EU rules likes strong customer authentication, which requires regular pin entries determined by cumulative spending and duration limits (which ever is hit first). It’s a lot easier to reliably meet the requirements of SCA using online transactions.

As for how offline transactions work. It’s reasonable simply. The terminal asks the card to sign the transaction using the cards private key. Now there is an extremely complicated set of rules around how liability shifts in the event of a fraud claim, depending on many factors like the type of transaction, if a pin was entered and validated by the card, if the card ask to go online and the terminal ignored the request, they type of merchant, the exact region your in etc etc.

But regardless of all that nonsense. The technical process is very simple. The terminal has the transaction cryptographically signed using symmetric encryption with a private key that is only known to the card and the issuer of the card. That signed transaction can later be presented to the issuer so the merchant gets paid.

Given it’s a symmetric key, you may wonder what happens in the event of a dispute between the issuer and the merchant, where the issuer claims they received a forged transaction. To which the answer is, the issuer sends a signed and sealed letter to card network operator saying they have double checked the transaction signature, and believe it to be forged. And if anyone doesn’t believe them, they can sue em (this is not at all a joke, it’s literally the documented and contractual process used by the major banks and card networks).
by Vinnl | 2025-10-04 00:29:02+00:00
I might be pre-empting some future articles of yours, and I'm happy to await either those, or me diving into ATProto deeper by myself some time in the future, but: can any app write any data to a PDS?

And if so, the more interesting question: what if it pretends to write data in the Bluesky format, but e.g. leaves out a field that the Bluesky Appview expects, or writes data in a different format than it expects?
by kovac | 2025-10-04 00:29:27+00:00
> My daycare sends me updates, my barbershop tells me when they're closing and I used it to sell my fridge.

To consider the other side of this, read "The age of surveillance capitalism" by Shoshana Zuboff (really read it though, not chatgpt the summary :).

All the benefits you mentioned are real. But, at what cost and could we have reaped the same benefits without surrendering all agency to those who can't be held accountable?
by tylerchr | 2025-10-04 00:29:43+00:00
Yeah, exactly. It seems like you understand just fine.

You claimed that “literally no one” has a different review workflow than yours. I do, and my experience is that clear commits make reviews both faster and deeper, which is very helpful specifically in a high-pressure, deadline driven environment where being slow and wrong is costly. You’re of course free to disagree and work differently.
by Amezarak | 2025-10-04 00:30:23+00:00
> The FDR admin had 90% support in the House and Senate.

FDR directly embedded his staff in Congress and told them what they were going to do, and vigorously attacked anyone who got in the way of his agenda by any means necessary, including using the FBI and IRS against them, denying them federal funds, etc. He also was very effective at bullying the press - look at what went on with radio licenses. He even (via the Black Committee and FCC) conducted mass surveillance on his political enemies.

FDR did have a lot of support in Congress but brutally punishing people is what made him effective. He was certainly one of the most authoritarian Presidents in American history and we should probably thank our lucky stars he was a good one.
by quotemstr | 2025-10-04 00:30:46+00:00
> Finally, the important bit is that I (as an identity) should be able to change both my handle (i.e. how people refer to me) and my hosting (i.e. where my data is stored) without breaking any links to my data from other data

But that's how the web already works. If I own example.com I can change its target from, say, 1.2.2.2 to 2.3.3.3 any time I want. My identity doesn't change even while my host does. What's the difference?

If you want another layer of indirection, add a CNAME or a 30X redirect.

> The identity document also contains my public key which is important to allow trustless caching and retransmission of the data.

Sure. That's what DANE (https://en.wikipedia.org/wiki/DNS-based_Authentication_of_Na...) is for!

> on top of CBOR, and WebSocket

We have a perfectly good web built out of normal, boring stateless HTTP requests and text formats. I'm skeptical of switching to stateful sockets and binary formats. I prefer my technologies to be minimal deltas built atop stable, proven foundations, and my NIH spidey sense is tingling when I read about stuff like this.

Why wouldn't adding per-update signature data to RSS (including previous entries, blockchain-style, in the hash) do exactly what this stack does but without all the new technology?
by chlorion | 2025-10-04 00:30:52+00:00
Claude was scraping my cgit at around 12 requests per second, but in bursts here or there. My VPS could easily handle this, even being a free tier e2-micro on Google Cloud/Compute Engine, but they used almost 10GB of my egress bandwidth in just a few days, and ended up pushing me over the free tier.

Granted it wasn't a whole lot of money spent, but why waste money and resources so "claude" can scrape the same cgit repo over and over again?

>(1) root@gentoo-server ~ # grep 'claude' /var/log/lighttpd/access.log | wc -l >1099323
by mitchellh | 2025-10-04 00:31:34+00:00
It only uses the LLVM backend for release builds. For debug builds Zig now defaults to self-hosted (on supported platforms, only x86_64 right now). Debug builds are directly in the hot path of testing your software (this includes building test binaries), and the number of iterations you do on a debug build are multiple orders of magnitude higher than release builds, so this is a good tradeoff.
by ajsnigrutin | 2025-10-04 00:31:50+00:00
So do you like always take split bills for everything? Like when eg. 4 coworkers go to eat together (ie. not a situation where one person pays everything)? Over here in the balkans/mitteleuropa you just put some approximate amount of cash on the table. Same for kids, you're not giving a kid your credit card when you send him to a bakery to get bread, you give him a couple of euros in cash.
by xmprt | 2025-10-04 00:33:57+00:00
If a significant amount of your business is cash based then the risk is much higher. If you're doing $100 worth of cash transactions per day then your registers and safe probably don't have much and you can probably get away with weekly or even monthly deposits. Whereas if you're dealing with $1000s in cash then you probably want to deposit daily, need a lot more security around your register and safe, and probably have a much higher quality safe too.
by LargoLasskhyfv | 2025-10-04 00:34:17+00:00
The world should equip all its atheistic lesbians, gays, queers, otherwise deemed haram people, preferrably carrying sexually transmittable diseases, with the best weapons, train them in their use, support them with conventional military, and have the taliban slaughtered by them. For aberrational crimes against humanity.

Maximal humiliation, no paradise.

And not stopping there, following up with that in every nest where they hide.

Global problems need to be solved globally.
by pfg_ | 2025-10-04 00:34:37+00:00
The reason to care about compile time is because it affects your iteration speed. You can iterate much faster on a program that takes 1 second to compile vs 1 minute.

Time complexity may be O(lines), but a compiler can be faster or slower based on how long it takes. And for incremental updates, compilers can do significantly better than O(lines).

In debug mode, zig uses llvm with no optimization passes. On linux x86_64, it uses its own native backend. This backend can be significantly faster to compile (2x or more) than llvm.

Zig's own native backend is designed for incremental compilation. This means, after the initial build, there will be very little work that has to be done for the next emit. It needs to rebuild the affected function, potentially rebuild other functions which depend on it, and then directly update the one part of the output binary that changed. This will be significantly faster than O(n) for edits.
Ask HN: Are startups still using Ruby on Rails to start new products/projects?
by zizee | 2025-10-04 00:34:45+00:00
I'm interested in building some open source projects/libraries, with long term monetization being the addition of paid/premium additional features.

I have a soft spot for (and expertise in) Ruby and Ruby on Rails, but I know it has seen a decline in popularity ove the years.

Are start-ups still using Ruby/Rails to get new apps stood up?

If not, which web frameworks are seeing growth, or big mind share for new builds of SaaS?

Edit: my primary interest is in building libraries for backend processes, than heavy frontend offerings.
by jacquesm | 2025-10-04 00:35:02+00:00
> It's been explained many times before why this is not possible: the library doesn't actually have a version number.

That sounds like it is absolutely fixable to me, but more of a matter of not having the will to fix it based on some kind of traditionalism. I've used python, a lot. But it is stuff like this that is just maddeningly broken for no good reason at all that has turned me away from it. So as long as I have any alternative I will avoid python because I've seen way too many accidents on account of stuff like this and many lost nights of debugging only to find out that an easily avoidable issue became - once again - the source of much headscratching.
by hn_throwaway_99 | 2025-10-04 00:35:41+00:00
> My point is that brand recognition doesn't matter: if you can get equivalent functionality the easy way (a click of a button in Docs), you're not going to open a separate app and copy-and-paste stuff.

I couldn't disagree more with this statement. So far I've seen companies trying to shoehorn AI into all these existing apps and lots of us hate it. I want Docs to be Docs - even if I'm writing some sort of research paper on a topic, I still don't want to do my research in Docs, because they're two completely separate mental tasks for me. There have been legions of failed attempts to make "everything and the kitchen sink" apps, and they usually suck.

> Even for search, right now, I'm pretty sure there are orders of magnitude more people relying on Google Search AI snippets than on ChatGPT. As these snippets get better and cover more queries, the reasons to talk to a chatbot disappear.

I'm sure that's true for older people, where Google is "the default", but just look at all the comments in this thread about where younger people/teenagers go first for information. For a lot of these folks ChatGPT is "the default", as as that is Google's big fear, that they will lose a generation of folks who associate "ChatGPT" with "AI" just like a previous generation associated "Google" with "search".
by bigyabai | 2025-10-04 00:36:01+00:00
Nope, it isn't. There are thousands of "legacy" software products that cannot be converted into machine code while complying with runtime constraints, compile-time assertions or unit tests. Many of these programs are baked into a ROM and will continue running regardless of how optimal AI gets.

Fun theory, but it's more of a Rorschach test for how people perceive tech being deployed.
by avianlyric | 2025-10-04 00:36:40+00:00
That depends on where you are. But all the major networks expect auths before capture, even if it isn’t technically enforced, and will punish gateways and merchants who have low auth rates.

Auth before capture doesn’t generally reduce interchange. What it primarily does is shift liability in the event of a dispute. If a chargeback is raised, and no auth happened, then the merchant simply looses immediately. They have no mechanism for fighting the chargeback. If they auth first, and got an approval, then it’s the banks problem in the event of a customer dispute. The merchant can reply to the chargeback by pointing out the valid auth they received from the bank, and the bank has to go pound sand.

You may see this as different “interchange” rates from a specific gateway. But that’s simply not true at the network level. The difference in pricing just exists so the gateways themselves can price in the additional risk associated with auth less captures, given the gateways are always on the hook, even if a merchant goes bust. The major networks force gateways to have funds kept in escrow that are guaranteed to cover any shortfall that might occur due to individual merchant failure, or failure of the gateway itself. That how networks make sure that zero real risk every accrues with them, they make everyone else put up huge stacks of cash to ensure that every virtual cent that’s in flight at any moment, is backed by a real cent in escrow somewhere.
by GrumpyYoungMan | 2025-10-04 00:37:10+00:00
Casual of research shows that the ACM's Code of Ethics can be traced back to its Guidelines for Professional Conduct in Information Processing dating back to 1966 (https://www.acm.org/code-of-ethics/1966-acm-code) and the IEEE's Code of Ethics can be traced back to a precursor organization's Code of Professional Conduct dating to 1912.