MurphyA/hacker-news huggingface dataset:
by ogogmad | 2025-12-17 11:18:47+00:00
The following is a Python prototype:

import numpy as np from scipy.sparse import csr_matrix, bmat class NFA: def __init__(self, T, S, E): self.T = T; self.S = S; self.E = E @property def null(self): # Nullable? return (self.S.T @ self.E)[0,0] # --- 1. The Core Algebra --- def disjoint(fa1, fa2): """ Places fa1 and fa2 into a shared, non-overlapping state space. """ n1, n2 = fa1.S.shape[0], fa2.S.shape[0] z = lambda r, c: csr_matrix((r, c), dtype=bool) # Block Diag Transitions chars = set(fa1.T) | set(fa2.T) T_new = {} for c in chars: m1 = fa1.T.get(c, z(n1, n1)) m2 = fa2.T.get(c, z(n2, n2)) T_new[c] = bmat([[m1, None], [None, m2]], format='csr') # Stack Vectors S1 = bmat([[fa1.S], [z(n2,1)]], format='csr') S2 = bmat([[z(n1,1)], [fa2.S]], format='csr') E1 = bmat([[fa1.E], [z(n2,1)]], format='csr') E2 = bmat([[z(n1,1)], [fa2.E]], format='csr') return NFA(T_new, S1, E1), NFA(T_new, S2, E2) def fork(fa): """ Returns two references to the exact same machine. """ return fa, fa def connect(fa1, fa2): """ The General "Sequence" Op. Wires fa1.End -> fa2.Start, and updates Start/End vectors. """ # 1. Transitions: T_new = T_combined + (Bridge @ T_combined) # Bridge = Start_2 * End_1^T Bridge = fa2.S @ fa1.E.T chars = set(fa1.T) | set(fa2.T) T_new = {} for c in chars: # If fa1==fa2 (fork), this just gets fa1.T[c] # If fa1!=fa2 (disjoint), this adds the non-overlapping blocks m_comb = fa1.T.get(c, _z(fa1)) + fa2.T.get(c, _z(fa2)) # Apply the feedback/feedforward T_new[c] = m_comb + (Bridge @ m_comb) # 2. States: Standard Concatenation Logic # S_new = S1 + (S2 if N1) # E_new = E2 + (E1 if N2) # Note: If fa1==fa2, this correctly computes S + (S if N) = S S_new = fa1.S + (fa2.S if fa1.null else _z(fa1, 1)) E_new = fa2.E + (fa1.E if fa2.null else _z(fa1, 1)) return NFA(T_new, S_new, E_new) # --- 2. The Operations (Now Trivial) --- def cat(fa1, fa2): return connect(*disjoint(fa1, fa2)) def leastonce(fa): return connect(*fork(fa)) def union(fa1, fa2): d1, d2 = disjoint(fa1, fa2) chars = set(d1.T) | set(d2.T) T_sum = {c: d1.T.get(c, _z(d1)) + d2.T.get(c, _z(d2)) for c in chars} return NFA(T_sum, d1.S + d2.S, d1.E + d2.E) def star(fa): return union(one(), leastonce(fa)) # --- Helpers --- def lit(char): T = {char: csr_matrix(([True], ([1], [0])), shape=(2,2), dtype=bool)} return NFA(T, _v(1,0), _v(0,1)) def one(): return NFA({}, _v(1), _v(1)) # Epsilon def _z(fa, c=None): return csr_matrix((fa.S.shape[0], c if c else fa.S.shape[0]), dtype=bool) def _v(*args): return csr_matrix(np.array(args, dtype=bool)[:, None]) # --- Execution --- def run(fa, string): curr = fa.S for char in string: if char not in fa.T: curr = _z(fa, 1) else: curr = fa.T[char] @ curr return (curr.T @ fa.E)[0,0] if __name__ == "__main__": # Test: (a|b)+ c # Logic: cat( leastonce( union(a,b) ), c ) a, b, c = lit('a'), lit('b'), lit('c') regex = cat(leastonce(union(a, b)), c) print(f"abac: {run(regex, 'abac')}") # True print(f"c: {run(regex, 'c')}") # False (Needs at least one a/b)
by theshrike79 | 2025-12-17 11:19:38+00:00
90% of the reason I use VSCode is the extensions. Zed doesn't have the ecosystem.

For VSCode I can get the official extension by the actual company doing $thing. With Zed I need to trust Random Person's extension that it doesn't have spyware or keyloggers in it.

"but but the company could!" yes, but they have a reputation to protect, releasing an official extension that leaks data is Very Bad. Random Person (if that's their real name) doesn't care, or does. I have no way of telling.
by mettamage | 2025-12-17 11:19:53+00:00
Sorry, is this new? Providing the right data to LLMs supercharges them. Yes, I agree. I've been doing this since March 2025 when there was a blog post about using MCP on HN. I'm not the only one who's doing that.

I've written my whole lifestory, the parts I'm willing to share that is, and posted it in Claude. It helped me way better with all kinds of things. It took me 2 days to write without formatting, pretty much how I write all my HN comments (but then 2 days straight: eat, sleep, write).

I've also exported all my notes, but it's too big for the context. That's why I wrote my life story.

From a practical standpoint I think the focus is on context management. Obsidian can help with this (I haven't used it so don't know the details). For code, it means doing things like static and dynamic analysis to see which functions calls what and create a topology of function calls and send that as context, then Claude Code can more easily know what to edit, and it doesn't need to read all the code.
by Arisaka1 | 2025-12-17 11:19:57+00:00
>Then everyone who wants AI can have it and those that don't .... don't.

The current trajectory of products with integrated online worries me, due to the fact that the average computer/phone user isn't as tech-savvy as the average HN reader, to the point where they are unable to toggle stuff they genuinely never asked for, but they begrudgingly accept them because they're... there.

My mother complained about AI mode on Google Chrome, and the "press tab" on the address bar, but she's old and doesn't even know how to connect to the Wi-Fi. Are we safe to assume that she belongs to the percentage of Google Chrome users that they embrace AI, based on the fact that she doesn't know how to turn it off, and there's no easy way to go about it?

I'm willing to bet that Google's reports will assume so, and demonstrate a wide adoption of AI by Chrome users to stakeholders, which will be leveraged as a fact that everyone loves it.
by tigranbs | 2025-12-17 11:20:22+00:00
I would say the AI consumption aspect was a side effect: the primary goal was to "generate" new stuff. So far, to me, the significant boost is the coding aspect. Still, for the rest of the people, I think you are right: 90% of the benefits come from being an interactive, conversational search on top of the available information that AI can read/consume.
by yunohn | 2025-12-17 11:20:59+00:00
I believe you are conflating multiple concepts to prove a flaky point.

Again, unless your agent has access to a function that exfiltrates data, it is impossible for it to do so. Literally!

You do not need to provide any tools to an LLM that summarizes or translates websites, manages your open tabs, etc. This can be done fully locally in a sandbox.

Linking to simonw does not make your argument valid. He makes some great points, but he does not assert what you are claiming at any point.

Please stop with this unnecessary fear mongering and make a better argument.
by purplehat_ | 2025-12-17 11:21:06+00:00
I've tried a few times to convince people in my life who would self describe as "bad with computers" to download an adblocker, but they usually find the friction too high. Adding extensions is unfamiliar for most, and even if it seems very basic for us, the non-tech people I know don't really want to deal with the risk of unknown unknowns from that, let alone switching to a healthier browser. (Perhaps reasonable since it feels like these days half the extensions on the Chrome Web Store are spyware or adware behind the scenes.)

I also suspect that those who lived through the days of frequent Windows errors and Chrome running out of memory all the time often expect software to fail in weird and unexpected ways, and a lot of people adopt a "don't fix it if it isn't broken" mindset.

Still, uBlock Lite and Brave browser are definitely easy wins and I'm glad to see more random people in my life using them than I would have expected. :)
by mrtksn | 2025-12-17 11:21:16+00:00
That's the time when VC's were making huge investments into the web tech, most companies were losing crazy money.

The mentality of the age was portrayed like this in SV: https://www.youtube.com/watch?v=BzAdXyPYKQo

There were companies that were making some money but those were killed or acquired by companies that give their services for free. Google killed the blogs by killing their RSS reader since they were long into making money stage and their analytics probably demonstrated that it is better people search stuff than directly going to the latest blog posts.

It's the same thing everywhere, the whole industry is like that. Uber loses money until there's no longer viable competition then lose less money by jacking up the prices. The tech is very monopolistic, Peter Thiel is right about the tech business.
by jeroenhd | 2025-12-17 11:21:27+00:00
FAANG usually only operate what is necessary to collect payment and maybe do some lobbying on the side. Accenture actually has a full HQ with people on the ground in Europe.

But yes, legally speaking, FAANG is also EU, same way Volkswagen is an American company. That's not really how people tend to talk about these companies, though.
by embedding-shape | 2025-12-17 11:21:28+00:00
Yeah, every website has different stats about user-agents, depends a lot on the types of users you attract. I bet HN has Firefox usage ratio above 15% for sure, while sites like Instagram probably has way below the global average.

Global browser marketshare never made much sense. You need to figure out what your users use, then aim to be compatible for most of those, and ignore any global stats.
by gaigalas | 2025-12-17 11:21:32+00:00
> I think that the de facto situation is that AI does not have to know about licences or copyright at all.

That is simply not true.

Companies can get into legal trouble if they don't.

Copilot does that bookeeping:

https://docs.github.com/en/copilot/how-tos/get-code-suggesti...
by vintermann | 2025-12-17 11:21:36+00:00
Sorry to get on one of my political hobby horses but...

We actually need to consider the possibility that yes, it is. More precisely, that the new CEO is trying to do that.

It doesn't take a grand conspiracy to join an organisation on false premises. It's totally easy. You can, today, go join a political party without agreeing with them at all, with the intent to sabotage them. Or another organization, including a workplace.

And just like some people just lie for amazingly little reason, I'm increasingly convinced some people do this. Maybe for a sense of control, maybe because they think they'll get rewarded. For every person who holds a crazy belief in public, there's probably one who holds the same belief but doesn't feel the need to let others in on it. As the world gets more paranoid, it'll get worse, open fears are the top of the iceberg.

If Enzor-Demeo ends up tanking Mozilla, there are plenty of people who will be happy with that. It's not as if his career will be over, far from it. Ask Nick Clegg or Stephen Elop. We all need to wake up to the idea that maybe the people who are supposed to be on our side aren't actually guaranteed to be unless we have solid mechanisms in place to ensure it.
by raw_anon_1111 | 2025-12-17 11:21:58+00:00
And you are still blaming the 15% cut. How does that have anything to do with discoversbility and people’s unwillingness to pay money for mobile apps? Apple’s “capriciously” has nothing to do with it.

We have an existence proof. In the US, any developer has been able to link out to their own payment scheme for awhile now without paying Apple a dime. That hasn’t solved a single problem for indie developers. It’s not the 15% cut - the same that every other marketplace has
by ogogmad | 2025-12-17 11:22:24+00:00
I have a suspicion that "good candidate" is being gerrymandered. What might have been "good" in 1990 might have become irrelevant in 2000+ or perhaps detrimental. I say that as someone who is actually good at algorithm questions himself. I think GP, as well as other Google defenders, are parroting pseudo-science.
by theshrike79 | 2025-12-17 11:22:49+00:00
How does a random programmer have "duty of care"?

They're paid to ship a feature, why would they spend extra time making something perfect? If it breaks they just fix it - and get paid doing it.

Not everyone writing code in a corporation is a Code Artesan who handcrafts every single character with thought and precision like an old Japanese craftsman. They just write code, it does about what it should and push a PR branch. Then you grab the next task from the corporate Jira project.
Show HN: HandsUp – Super Simple Volunteering
by barryvan | 2025-12-17 11:22:57+00:00
HandsUp is the straightforward and mobile-first volunteer-management platform that the communities I'm involved in needed.

---

Over the past year, I've been more and more involved in local clubs and activities. One of the biggest challenges I observed was with managing volunteers. People were trying to use WhatsApp polls, hand-written rosters, Google Forms, and more to organise events and manage volunteers.

A big part of the challenge was friction - not only for the volunteers, but also for the event creators.

After one particularly disastrous effort of trying to use a shared Google Sheet to build out a complex roster for a school fete, I decided enough was enough and that led to HandsUp. My goal was to reduce friction as much as possible, and to make it mobile-first for volunteers and organisers. It supports simple events as well as more complex rosters and slots.

Its first couple of trial runs have gone pretty well, so I figured it was probably the right time to share it with HN and get some more feedback! :) For organisers, signing up and logging in is via magic links in emails; for volunteers, there's no sign up required. Feel free to create events and try signing up yourself too.
by kscarlet | 2025-12-17 11:23:13+00:00
Well written in general. However:

> C++ has method override but it's not the same: you cannot change the behavior of how addition works on two 64-bit integers (such as treating them both as fixed-point numbers).

Wouldn't you just create a 1-field struct/class and override all the arithmetic operators? Or if you're less fixated about using the same operator (like me as a Lisper), invent a method called ADD and use that.

> Changing addition to work on "bignum"s (numbers that have arbitrarily large precision) is a good usecase of overriding the addition operation.

I don't see this as something unique to Forth compared to other languages, even C++.
by StrataCreator | 2025-12-17 11:23:21+00:00
I'm working on a Log analyzer, something that doesn't choke on huge files. I ended up building something that can open a 50GB log file in 8 seconds and not eat your RAM, while maintaining 60fps when scrolling.

All this with a native C++ engine (able to run on Windows, Linux and MacOS) with a Flutter UI.

With additional features that DevOps teams and SRE can use like Live SSH tailing, JSON analysis and formatting, context aware search with regex, text, and search via JSON fields. All those things also performing incredibly fast - analysing a 5GB file for JSON logs takes about 2s on my laptop.

Still in beta currently, with about 70% of the functionality done! You can find more here https://getstrata.co.uk/ :)
by jillesvangurp | 2025-12-17 11:24:01+00:00
I think blocking ad blockers (the whole FFing point of using Firefox is freedom to do use those) would be the shortest path for him out of the door as a CEO.

It's so tone deaf that it is likely to probe the community into drastic action if he were to attempt to push that through. Including probably much of the developer community. I'm talking the kind of action that boils down to forking and taking a large part of the user base along. Which is why that would be very inadvisable.

The problem with being a CEO of a for profit corporation, which is what he is, is that his loyalty is to shareholders, not to users. The Mozilla Foundation and the corporation are hopelessly inter dependent at this point. The foundation looks increasingly like a paper tiger given the decision making and apparent disconnect with its user base which it is supposed to serve.

All the bloated budgets, mis-spending on offices, failed projects, fancy offices, juicy executive salaries at a time where revenue from Google continued to be substantial all while downsizing developer teams and actually laying some off isn't a great look. Stuff like this just adds to the impression that they are increasingly self serving hacks that don't care about the core product: Firefox. This new CEO isn't off to a great start here.
by lunaticlabs | 2025-12-17 11:24:13+00:00
As a video game programmer, I can speak to this. For video games, we generally need geometry. Flat planes, things you can collide against, things we can reason about. Gaussian splats work as a bunch of 2D images stuck on top of each other, that in combination look correct. This is great for rendering, but makes it very very difficult/impossible to figure out whether you are inside some geometry or not, because it doesn't have any. it doesn't give you any way to reason about it as solid geometry. So in the end, you have to create the geometry that is the solid surfaces that you will collide against and move around in, and gaussian splats would be independent of that. Once you have all the geometry, its much easier to just render that.

There are tools that will generate geometry from splats, but its generally not very good, and gives messy results. Fixing the messiness is often more work than just re-doing it from scratch. This is another incredibly difficult problem that hasn't been solved particularly well.
by piltdownman | 2025-12-17 11:25:01+00:00
Beautifully lampooned in "In The Loop" when the US Assistant Secretary of State fobs the UK Director of Communications off with one of his 'top guys'.

MALCOLM I’ve just had a briefing from a 9-year old child... His f*ing briefing notes were written in Alphabetti Spaghetti. When I left I nearly tripped over his umbilical cord.

LINTON I’m sorry if it troubles you that our people achieve excellence at a young age... By the way, your prime minister informs me that he’s tasked you with collating some fresh British intel for us.

MALCOLM Yeah, apparently your f*ing master race of gifted toddlers can’t quit get the job done in between breast feeds and playing with their power rangers.
by bumpymark | 2025-12-17 11:25:19+00:00
Hey everyone , since we're all shipping startups in days and moving with speed, i noticed that a lot of times people ship and dont have a way to track errors or check if their users hit any bugs in production.

Most people add an option on their site where users can give feedback or report, but i've actually never used that. its just stressful to me honestly. funny thing is , i faced this challenge once , where i launched and users rage quit my saas because they hit errors.

i recently started working on something that solves this for me. although there are other error trackers out there like sentry and the rest , those are kind of an overkill for me , and the dashboards look too overwhelming for a simple project. so i built Bugmail(it literally looks like gmail) and its very easy to setup. bugmail notifies you (either through gmail or discord or slack) when something breaks in production and it shows you the event that caused the bug(breadcrumbs).

I initially built this for myself alone , but i realized there might be other devs out there who face this same issue of not having a way to track errors and the existing solutions out there are too much stress to setup or are bloated. so i put bugmail out there and its free to get started
by darkwater | 2025-12-17 11:25:22+00:00
> The CEO of an organization like Mozilla even considering blocking adblockers for profit is like the president of Amnesty International considering to sell lists of dissidents to the secret police.

No, for Amnesty International it would be more like not considering somebody a political prisoner because the country that took the prisoner is a 1st world country and they don't want to expose themselves on a matter that would risk the donations from a certain population.

Yes, that happened in the aftermath of the Catalan attempt at peaceful independence in October 2017 by Amnesty International Spain.
by kristjank | 2025-12-17 11:25:33+00:00
Do you really harbor so much charity towards tech CEOs that you can't see its other meaning as at least equally as likely?

It costs Mozilla literally nothing to reassure its privacy and user-controlled principles. Instead we got a jk...unless... type of response. This is cowardice and like another commenter has said, a negotiation offer disguised as a mission statement.
by lunaticlabs | 2025-12-17 11:26:40+00:00
The big advantage of macs when it comes to GPUs isn't their direct speed, its the unified memory model. If I want to buy a GPU that has 64-128GB of addressable memory, it will cost me an enormous amount and the computer itself will be a server module for racks that is loud and not a consumer PC. You can buy a mac with a unified memory model, and even though its GPU is not on the top rankings, the fact that it can operate on your model in regular memory is what gives it its advantages.
by benrutter | 2025-12-17 11:26:58+00:00
I think I agree with you that:

- everything else is trash.

- Github Actions changed the landscape.

- They're composable.

And I still hate github actions! Aside from anything else, they have one major flaw, which is there is no good development/test loop for writing them.

If you write most of your CICD in some kind of script, then you can run it locally, and do some basic checks around environment etc before deploying.

If you write most of your CICD in github actions or any alternative, you will be doomed to push 100 commits with messages like "maybe be?", "hmmm. . ." before eventually squashing them all down when it turns out several hours later that you mispelt an environment variable.
by tjpnz | 2025-12-17 11:27:17+00:00
Fork Firefox, bundle uBlock Origin, Sponsor Block et el and sell it is a consumer web security product (that's not complete shit) with a monthly subscription. Use some of the proceeds to support the devs working on the underlying tech, similar to what Valve are doing for Wine, Proton and Fex.

Bonus points:

1. Multi layered approach to dealing with ads and other malware.

2. A committment to no AI or other bloat - that's not what I'm paying you for.

3. Syncable profiles.
by purplehat_ | 2025-12-17 11:28:15+00:00
I often see things like this and get a little bit of FOMO because I'd love to see what I can get out of this but I'm just not willing to upload all these private documents of mine to other people's computers where they're likely to be stored for training or advertising purposes.

How are you guys dealing with this risk? I'm sure on this site nobody is naive to the potential harms of tech, but if you're able to articulate how you've figured out that the risk is worth the benefits to you I'd love to hear it. I don't think I'm being to cynical to wait for either local LLMs to get good or for me to be able to afford expensive GPUs for current local LLMs, but maybe I should be time-discounting a bit harder?

I'm happy to elaborate on why I find it dangerous, too, if this is too vague. Just really would like to have a more nuanced opinion here.
by yokljo | 2025-12-17 11:28:24+00:00
I'm the OP, and I have to pitch in here. This comment is a bit unhinged, basically claiming that every WIP GUI library written in Rust sucks on principle. This is false, and there are some very good ongoing efforts that will probably be great and desirable GUI options in the future.

Also, the comment claims that QML is not Qt. QML was added to Qt in 2009 and has been where a large proportion of the developer's focus has been ever since. It is absolutely Qt and you can't claim otherwise.

A bit of a passionate response to a passionate parent comment.
by qwertox | 2025-12-17 11:29:08+00:00
> People want software that is fast, modern, but also honest about what it does.

I want my browser to be able to run uBlock Origin, so therefore people want more than just what is specified above. I did quit using Google Chrome because they banned uBO (I know the command-line-flags hack still works, but for how long?).

If Firefox also bans uBO through removal of Manifest v2 without offering a proper alternative, then it's just as big of a piece of crap as Chrome is. Due to lack of real choices, I could as well move back to Chrome. I'm currently using Vivaldi.