MurphyA/hacker-news huggingface dataset:
by shakna | 2026-01-11 10:52:36+00:00
I don't recall where, but I've heard that before in the past. Perhaps in the kind of slop that makes the rounds on LinkedIn.

There is sort of a good reason for it, in the past. Before the overhaul, Microsoft Speech used to skip Facebook posts, and read the alt text instead. It is now, however, more sane. Facebook was pretty darn bad at accessibility in its early days. A lot of intermingled broken spans for text, causing stuttering and other issues.

However, today, most reading systems prefer the "title" attribute, to the "alt" one. If title exists, it'll read that and skip alt. Some always skip alt, regardless of it exists or not.

Figure and figcaption are about the only way to get good and consistent behaviour, but you don't really control how those happen on most social media platforms. You throw everything you can at the wall, and see what happens. And it might change tomorrow.

Today, I'd say the above is bad advice. An image description is a good practice. Repeating yourself, isn't.
by dingnews | 2026-01-11 10:54:24+00:00
Hello HN, I’m the creator of this tool.

I built Land Hunter (part of my True Size project) because I've always been fascinated by the "Earth Sandwich" concept. We often hear that digging a hole through the Earth leads to China (or the US), but I wanted to visualize exactly where you'd end up in real-time.

The App: It’s a browser game where you drag a crosshair to find antipodes.

The Goal: Find spots where land overlaps with land (e.g., Spain <-> New Zealand).

The Reality Check: It turns out 71% of Earth is water, but it feels like 99% when you are actually looking for land. Digging anywhere in the continental US drops you straight into the Indian Ocean.

Tech Stack:

React & Tailwind for UI.

React-Leaflet for the map engine.

Logic: It calculates the antipodal coordinates (lat * -1, long + 180) on the fly and renders a custom tile overlay inside the crosshair to create the "X-Ray" flashlight effect.

It’s still an MVP. Mobile support is decent but desktop provides the best experience for the "digging" animations.

Happy to hear your feedback on the UX or the projection logic!
by beingflo | 2026-01-11 10:54:35+00:00
Thanks for the example of a Playwright report page.
I agree that getting browser tests (not even just visual tests) to work reliably is considerable work. I built out a suite at work for a rather complex web application and it certainly looks easier than it is.
A couple of notes:

- I disagree that you need a powerful VPS to run these tests, we run our suite once a day at midnight instead of on every commit. You still get most of the benefit for much cheaper this way.

- We used BrowserStack initially but stopped due to flakiness. The key to getting a stable suite was to run tests against a local nginx image serving the web app and wiremock serving the API. This way you have short, predictable latency and can really isolate what you're trying to test.
by DrewADesign | 2026-01-11 10:55:14+00:00
And that’s the problem with a lot of chatbot usage in the wild: it’s saving you from having to think about things where thinking about them is the point. E.g. hobby writing, homework, and personal correspondence. That’s obviously not the only usage, but it’s certainly the basis for some of the more common use cases, and I find that depressing as hell.
by macbr | 2026-01-11 10:55:25+00:00
Creutzfeldt-Jacob can be tested for using the RT-QuIC test[1] where a positive result guarantees with near certainty that misfolded prions are present.
But as the disease is defined via the physical changes in brain tissue only obtainable via autopsy a definite diagnosis is often only made after death.

[1]: https://en.wikipedia.org/wiki/Real-time_quaking-induced_conv...
by vbezhenar | 2026-01-11 10:55:26+00:00
> Why?

I don't know why. Try it out. That's the way browsers are coded.

> It isn’t an opinion, it literally is invalid HTML.

It matters not. You're writing HTML for browser to consume, not for validator to accept. And most of webpages are invalid HTML. This very HN page contains 412 errors and warnings according to W3C validator, so the whole point of HTML validness is moot.
by Solance | 2026-01-11 10:55:30+00:00
A little over a year ago I released my app - a social media app focussed around music, and I have seen some growth in users and user retention (monthly and daily active user counts), however, I feel like I'm not where I should be at yet. I currently have 680 users but given it's been around 15 months this feels really low.

I don't have much of a marketing budget as I am fully bootstrapping this app (I just use money from savings when I can and I'm not sure when/if I'd even be able to get funding as I have no prior business experience and acquiring funding seems near impossible right now).

From the marketing I have done which is primarily advertising on Meta products such as Facebook and Instagram, I get a bit of reach but hardly any downloads. Granted my campaigns are usually around $50-100 only but I still am lucky to get 2-3 signups from a campaign of this budget.

I would love some inspiration and tips and tricks to increase the rate that I can acquire new users and get them to also invite their friends on to the platform! Any advice is most welcome.

Some more information on the app: In a very brief description of the app - it's called Solance and it is designed to be a social media platform where you can follow friends, family, colleagues, or even other users you don't know, and interact with each other through the songs they have recently been listening to.

I am always refining the app and adding in new features, but I can only release updates every month or so as I work on Solance on the side and work full time.

Here's the link to my website: https://solance.app (I still need to update the website some time soon with additional features and updated images of the app)
by idoubtit | 2026-01-11 10:55:52+00:00
This a very verbose and confuse article. Mixing P/LI and IMG/BR is wrong. I think the situation could be explained with two points:

1. The autoclose syntax does not exist in HTML5, and a trailing slash after a tag is always ignored. It's therefore recommended to avoid this syntax. I.e write <br> instead of <br />. For details and a list of void elements, see https://developer.mozilla.org/en-US/docs/Glossary/Void_eleme...

2. It's not mandatory to close tags when the parser can guess where they end. E.g. a paragraph cannot contain any line-block, so <p>a<div>b</div> is the same as <p>a</p><div>b</div>. It depends on the context, but putting an explicit end tag is usually less error-prone.
by 3abiton | 2026-01-11 10:56:06+00:00
This is untrue in reality. Literally I used more than 5 banking apps, and few investement ones (including 1 in the US). I could log in to all of them through a browser, using a phone number 2FA, or a proprietary authenticator of the bank (a physcial device). Never a bank forced me to use their app to login. It's an option though (and a convenient one). If that end up ever to be the case, I am for sure not using a google phone to do so. iPhone it is.

And here is the funny part. On my A13 Android (fully rooted, BL UL, custom ROM) I can totally bypass play integrity, using the keybox method. There is literally no way for google to patch this. I am yet to get it working on A16, mainly for lack of time to tinker, also because OP15 has no sources released yet to build ROMs for it, which is the main motivator for me to use an Android phone.

The takeaway is this: Google promotes "Play Integrity" (PI) as a working solution against "tempered devices" (ie. because god forbid you have sudo access on your device). Yet, it's easy (albeit a bit complex as you have to know the right telegram groups) to bypass it. PI gives the illusion of security, yet in reality it counter-solution exists. Real bad actors would have 0 issues doing what they want to do, the real impact is deterring users from open source roms like Lineage, simply because their bank app wouldn't work, which imo is Google plan all along masquerading as security feature. Google's main business is ads, and hosts based ad blocking is extremely easy once rooted.

Their recent moves align well with this (slow rollout of open sourcing, QPR2 is still not out yet, antagonizibg 3rd party stores like f-droid), all in the "name" of security.
by ErroneousBosh | 2026-01-11 10:57:07+00:00
Yes, the whole thing is built like bike brake cables, with a spirally metal support core, the goodies up the inside, and then a nylon braid and PVC jacket over the top.

I have issues with the PVC-jacketed cables under the bonnet of my nearly-30-year-old Landrover, where the plasticiser has been baked out of the insulation and they've gone brittle. Worst affected are the wires to the fuel injectors and the lambda sensors, presumably because the former are at the top of the engine and get reflected heat off the bonnet, and the latter because they're near the literally red-hot exhaust downpipes.

That's okay for an old vehicle that you'd expect to repair, though.

I've seen the same problem in three-year-old Toyotas, and that is Just Not On.
by PanMan | 2026-01-11 10:57:57+00:00
I liked this idea so much I signed up and linked my personal cc (to my job email) to try it out. Unfortunately, it keeps saying "You must add a credit card to use Sprites with this organization" - even though I just linked a card. No way to continue from there: it's a loop that shows my account with an "activate" button, clicking it shows the error and my account again. Fly.io says I have an account now and it's "in good standing".. :(
Show HN: Qonvo – a group chat that turns conversations into live maps
by digi_wares | 2026-01-11 10:58:30+00:00
Hi HN,

Most group chats end up as endless scroll. Once a discussion gets interesting, context disappears, replies cross, and ideas get lost.

I built Qonvo as an experiment in a different direction:
a realtime group chat where each message becomes a node, and replies create connections, so the conversation grows into a live visual map instead of a timeline.

How it works:

- Share a room link (no accounts)
- Chat with 2 or more people
- Messages appear instantly as nodes
- Replying creates visible links
- Shared #tags lightly connect related ideas
- You can click any node to explore that part of the discussion

Rooms are temporary and auto-expire

You can export the conversation as JSON

There’s no AI trying to “understand” the conversation- the structure comes directly from how people reply and interact.

This started as a personal frustration with brainstorming and group discussions that feel rich in the moment but impossible to revisit later.

Curious whether this feels useful, distracting, or somewhere in between.
Would love feedback on:

- whether the map actually helps thinking
- what kinds of conversations this works best for
- where it breaks down

Live demo: https://qonvo.xyz

Happy to answer questions and explain the architecture if useful.
by primitivesuave | 2026-01-11 10:58:38+00:00
Thank you for the excellent feedback. I had this realization a while back that I'm a mobile user during "consumption" (e.g. browsing HN late at night), but a desktop user for "production" - now I see how it applies to this side project as well. Also, I still need to figure out some React performance issues which make it virtually unusable on pre-2020 machines :(

This comment actually invigorated me to try the site from my phone and improve the experience, so I sincerely thank you for the motivation.
by dom96 | 2026-01-11 10:59:02+00:00
> As a programmer, I want to write more open source than ever, now.

I want to write less, just knowing that LLM models are going to be trained on my code is making me feel more strongly than ever that my open source contributions will simply be stolen.

Am I wrong to feel this? Is anyone else concerned about this? We've already seen some pretty strong evidence of this with Tailwind.
by neilv | 2026-01-11 10:59:14+00:00
I didn't know that Navigator was ever strict, and bit funny story about when I complained that they hadn't been strict...

Around 2000, I was meeting with Tim Berners-Lee, and I mentioned I'd been writing a bunch of Web utility code. He wanted to see, so I handed him some printed API docs I had with me. (He talked and read fast.)

Then I realized he was reading the editorializing in my permissive parser docs, about how browser vendors should've put a big error/warning message on the window for invalid HTML.

Which suddenly felt presumptuous of me, to be having opinions about Web standards, right in front of Tim Berners-Lee at the time.

(My thinking with the prominent warning message that every visitor would see, in mid/late-'90s, was that it would've been compelling social pressure at the time. It would imply that this gold rush dotcom or aspiring developer wasn't good at Web. Everyone was getting money in the belief that they knew anything at all about Web, with little way to evaluate how much they knew.)
Show HN: Mac Cleaner, Offline That Fixes the "System Data" Problem
by tonikami | 2026-01-11 10:59:41+00:00
Hey HN

Ex YC/Google engineer turned indie maker here - excited to share something I just shipped.

The System Data in my Mac was taking up 300GB and it took me months to figure out how to clear the old cache, logs, junk and more. And CleanMyMac is a subscription - I refuse to pay subscription fees for Mac apps that run locally.

So I built FreeUpMyMac an offline, lifetime Mac cleaner that clear junk with 1 click. And helps you visualize your storage with TreeMap/Sunburst.

Hope it’s helpful to you as it is for me.

Would love your feedback

Tunde
by aziis98 | 2026-01-11 10:59:45+00:00
I don't get how this would be more "ai friendly" than other frameworks, that kind of propositions should be backed by more concrete proof. I know that this is a kind of open problem but at least show me this can be easily generated with common models without an enormous reference prompt.

Another thing is that this looks like any other framework out there. I think you can map every one of it's features mostly 1-1 to SolidJS. What is the novelty here? The slightly changed js syntax with "component", "@" and "#"?

I would like to see more radical and new ideas in the js space, expecially in this period. Maybe a new take on Elm to get stronger UI stability guarantees. Or even just some very good tooling to reason about very large reactivity graphs at runtime and (maybe also at) compile time.

Edit: In the actual documentation they provide an llm.txt https://www.ripplejs.com/llms.txt
by hnlmorg | 2026-01-11 10:59:52+00:00
> I don't know why. Try it out. That's the way browsers are coded.

I’m not saying you’re wrong, but I’d need more than that to be convinced. Sorry.

> It matters not. You're writing HTML for browser to consume, not for validator to accept.

It matters because you’re arguing a strawman argument.

We weren’t discussing what a browser can render. We were discussing the source code.

So your comment wasn’t a rebuttal of mine. It was a related tangent or addition.
by strogonoff | 2026-01-11 10:59:53+00:00
There are ways for not closing HTML tags to backfire in some scenarios.

Some rules of thumb, perhaps:

— Do not omit if it is a template and another piece of HTML is included in or after this tag. (The key fact, as always, is that we all make errors sometimes—and omitting a closing tag can make an otherwise small markup error turn your tree into an unrecognisable mess.)

— Remember, the goal in the first place is readability and improved SNR. Use it only if you already respect legibility in other ways, especially the lower-hanging fruit like consistent use of indentation.

— Do not omit if takes more than a split-second to get it. (Going off the HTML spec, as an example, you could have <a> and <p> as siblings in one container, and in that case if you don’t close some <p> it may be non-obvious if an <a> is phrasing or flow content. If you want the reader of the code to become an HTML parser, you’re doing it wrong.)

For me personally this makes omitting closing tags OK only in simpler hand-coded cases with a lot of repetition, like tables, lists, definition lists (often forgotten), and obviously void elements.
by OlaProis | 2026-01-11 11:00:39+00:00
Thanks for flagging this! You're right — Wooji-Juice's Ferrite is a well-known iOS audio recording app.

The name collision is unfortunate. We picked "Ferrite" for the magnetic/persistent storage connotation (ferrite cores were early computer memory). Different domain (text editor vs audio), different platforms (desktop vs iOS), but I understand the SEO/discoverability concern.

Open to suggestions if the community feels strongly about a rename! Though at this stage, with GitHub issues, releases, and now HN discussion, there's some established presence.
by csomar | 2026-01-11 11:00:48+00:00
> - I disagree that you need a powerful VPS to run these tests, we run our suite once a day at midnight instead of on every commit. You still get most of the benefit for much cheaper this way.

Then how do you know which commit is responsible for the regression? I can see that working for a very small team where the amount of changes is limited but even so, especially with css, where a change in some place can affect the styles in another.
by davydm | 2026-01-11 11:01:31+00:00
Incorrect. Totally incorrect.

I don't mind an ad. Put it somewhere where it doesn't break the flow of the page or video, and we're all good.

However, people got so thirsty for ad revenue, it became a game of "find the content" on most sites. At least an ad blocker restores some sanity and I can read the article. I pay for YT premium to drop the ads, especially on devices like my tv, where I don't want to muck about with intermediate tech like a pihole. And I don't mind paying a reasonable amount for stuff I enjoy. I don't mind paying for YT prem.

Ad blockers are being targeted here, but it's a misdirection to blame them. Blame the people who make shit sites you can't read. Blame the corporations which have to turn a profit whilst charging you nothing. All good. But don't blame the user for trying to just survive on the net, with all the ad spam and especially all the deceptive advertising out there. Blaming the user and the blocker is a complete grifter move.

In addition, the web is now currently on a crazy downward cycle as everyone tries to block ai agents, all the while making the experience for legitimate users worse. But isn't that just the way? Most things that suck do so because someone has exploited the weaknesses of the system for personal gain, and someone had had to impose restrictions.

The web is shit because people are selfish and shit. Most especially the money hungry ai grifters trying to get us to by a faulty product to break them out of the hole they dug.
by steve1977 | 2026-01-11 11:01:44+00:00
Carbon is long deprecated and as mentioned was only ever meant as a transitional framework.

Cocoa still exists and is usable.
UITouch is not a framework, but a class in UIKit.
UIkit still exists and is usable.
Same for Catalyst. Same for SwiftUI.

As said, I'm not pretending everything is sunshine and roses in Apple-Land. But at least Apple seems to mostly dogfood their own frameworks, which unfortunately doesn't seem to be the case anymore with Microsoft. WinUI 3 and WPF are supposed to be the "official" frameworks to use, but it seems Microsoft themselves are not using them consistently and they also don't seem to put a lot of resources behind them.
by allie1 | 2026-01-11 11:01:53+00:00
They are so wildly used, and the companies usually tell you if they use your prompts for training. But again, at the current use case your code gets lost in the noise even if they do use it. Anthropic says they don’t. Microsoft allows you to disable, same with ChatGPT. Unclear on Goole.

But if you are worried, you can use an inference only solution like Groq.
by ErroneousBosh | 2026-01-11 11:02:24+00:00
In the olden days, when things like TVs and VCRs had cabinets made from polystyrene and PVC-jacketed power cables, you'd often find that if something had been put away with the mains lead coiled up on top, it then left a "scar" on the case. This is because the plasticiser in the PVC jacket attacked the polystyrene, leaving the mains lead fragile and brittle and a nasty gooey mess on the case that you couldn't fix.

That's why the leads are wrapped in a polythene bag.

When people started using polystyrene sheet insulation in houses (thankfully they no longer do this!) the cables running inside the walls were affected in the same way, with the PVC insulation rotting off as the plasticiser leached out and attacked the polystyrene. Of course there you had the added joy of having a potential electrical fire with a source of just-about-inextinguishable fuel, the polystyrene foam made of fuel and air.

I wonder if something similar has happened here, something's gotten onto the fibre jackets and pulled the plasticiser out?
by OlaProis | 2026-01-11 11:02:43+00:00
Ha! I appreciate the compliment (I think?). To be transparent: yes, AI tools were used during development — they're fantastic for boilerplate, documentation, and exploring unfamiliar APIs.

But this wasn't "2 sessions" — Ferrite has been in development for months with ~30,000 lines of Rust across 50+ modules. The Mermaid renderer alone is ~6000 lines of layout algorithms (Sugiyama-style graph layout, sequence diagram activation tracking, nested state machines, etc.).

AI helped ALOT, but there's no "generate full app" prompt that produces working text editors with native diagram rendering, rope-based text buffers, and custom window chrome. Still takes understanding the domain.

That said, you're right that the development velocity is higher than 5 years ago. Exciting times!
by uecker | 2026-01-11 11:03:20+00:00
Also in C or Zig you do not need to create your own memory management using mmap. Whether this is necessary in this case or not is a different question.

In the end, if the Rust advantage is that "Rust's technical design reinforces a culture" where one tries to avoid this, then this is a rather weak argument. We will see how this turns out in the long run though.
by cess11 | 2026-01-11 11:03:31+00:00
No, it is not. Here's Ahmed Yassin on the issue:

https://www.youtube.com/shorts/DY0O9O9xR2Q

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

He was assassinated by the israelis, who were actually doing ethnic cleansing for decades before that.

It's weird how you care more about some future atrocity you fantasise about than actual atrocities.
by cmiles8 | 2026-01-11 11:03:47+00:00
The “anti-AU hype” phrase oversimplifies what’s playing out at the moment. On the tech side, while things are a bit rough around the edges still the tech is very useful and isn’t going away. I honestly don’t see much disagreement there.

The concern mostly comes from the business side… that for all the usefulness on the tech there is no clearly viable path that financially supports everything that’s going on. It’s a nice set of useful features but without products with sufficient revenue flowing in to pay for it all.

That paints a picture of the tech sticking around but a general implosion of the startups and business models betting on making all this work.

The later isn’t really “anti-AI hype” but more folks just calling out the reality that there’s not a lot of evidence and data to support the amount of money invested and committed. And if you’ve been around the tech and business scene a while you’ve seen that movie before and know what comes next.

In 5 years time I expect to be using AI more than I do now. I also expect most of the AI companies and startups won’t exist anymore.
by vbezhenar | 2026-01-11 11:04:33+00:00
> why would you ever want to not close tags?

Because browsers close some tags automatically. And if your closing tag is wrong, it'll generate empty element instead of being ignored. Without even emitting warning in developer console. So by closing tags you're risking introducing very subtle DOM bugs.

If you want to close tags, make sure that your building or testing pipeline ensures strict validation of produced HTML.