MurphyA/hacker-news huggingface dataset:
by rob | 2026-03-12 13:25:11+00:00
It's starting to show its age, but I've been using a 2019 MacBook Pro with the Intel chip and 16GB of memory. Still handles multiple terminal sessions with Claude Code and Codex simultaneously, building in Xcode, running Docker in the background, etc.

(Maybe the fans sometimes sound like they're a jet engine taking off…)

Finally just put an order in for a new 16" MBP M5 Max with 48GB memory only because it looks like they're going to stop supporting the Intel stuff this year and no more software updates. It'll probably be obsolete in six months with the rate things are going, but I've been averaging seven years between upgrades so it should be good!
by sodic | 2026-03-12 13:25:23+00:00
> However having worked with Typescript for 8 years now... I'm not sure I could go back to Ruby without types.

Very true for me as well. I've never worked with Ruby but feel the same way about Django.

Btw, if you're looking for a "Rails but with TypeScript," my colleagues and I are working on almost just that: https://wasp.sh/.

The main difference, besides the ecosystem, is that we're more in the "configuration over convention" camp. Wasp has a simple DSL for specifying said configuration, but it's about to be replaced with a TypeScript file.

Wasp is still in beta and nowhere near Rails-level polish. But, depending on your early adopter tendencies, you might find it interesting regardless. If you do try it out, please reach out and share your thoughts.
by solatic | 2026-03-12 13:25:48+00:00
Average daily USD-NIS trading volume (per Bank of Israel: https://www.boi.org.il/en/communication-and-publications/pre... ) is on the order of magnitude of about $15 billion.

There are multiple founders getting billions of dollars each. It's not so unreasonble to fear what could happen if daily trading volume suddenly had a significant increase from them collectively dumping billions of dollars onto the market on the same day to settle the tax bill.
by akovari | 2026-03-12 13:25:57+00:00
Wanted to promote the Kiket launch day on Product Hunt. Upvotes / feedback is greatly appreciated.

TLDR:

Kiket is the workflow automation platform for regulated industries. Define workflows as code in Git, let AI agents handle the grunt work while humans stay in control, and anchor every action to blockchain for tamper-proof audit trails. Start with no-code marketplace bundles, customize with low-code YAML, or go all-code with our SDKs—your choice, your infrastructure. Built for pharma, finance, healthcare teams where proving what happened matters as much as making it happen.
Show HN: Run an Agent Council of LLMs that debate and synthesize answers
by JitseLambrichts | 2026-03-12 13:26:28+00:00
I built a local-first UI that adds two reasoning architectures on top of small models like Qwen, Llama and Mistral: a sequential Thinking Pipeline (Plan → Execute → Critique) and a parallel Agent Council where multiple expert models debate in parallel and a Judge synthesizes the best answer. No API keys, zero .env setup — just pip install multimind. Benchmark on GSM8K shows measurable accuracy gains vs. single-model inference.
by rcxdude | 2026-03-12 13:27:34+00:00
This is my experience as well. The average quality in ROS is rock-bottom and so while it contains all of the things you might want from a robotics framework, you pay dearly for it. I would also say that whole the concept of distributed network modes is a convenient one for robotics development, stringing your control loops through such a structure is a recipe for disaster and should be avoided in your system design as much as possible (and one of the problems with ROS as a framework is that it heavily encourages this)
by ftwum | 2026-03-12 13:27:35+00:00
I built an open-source library of React components for creating PDF documents: invoices, reports, certificates, data tables, etc.

The problem: every time I've needed to generate a PDF in a web app, I've spent 2-3 days fighting with page breaks, orphaned headings, table overflow, and headers/footers. Whether it's Puppeteer, jsPDF, or one of the dozen hosted APIs, the DX always feels like 2014.

So I built @docuforge/react-pdf, a set of composable React components that handle the hard parts:

- Smart page breaks (no more split table rows or orphaned headings)
- Auto-paginating tables with repeating headers
- Headers/footers with page number interpolation
- Full CSS support (Flexbox, Grid, @media print)
- TypeScript-first with autocomplete for every prop

Quick example:

import { Invoice, LineItem, InvoiceTotal } from '@docuforge/react-pdf';

<Invoice>
<LineItem description="Consulting" qty={10} rate={150} />
<InvoiceTotal subtotal={1500} tax={135} total={1635} />
</Invoice>

GitHub: https://github.com/Yoshyaes/docuforge
npm: npm install @docuforge/react-pdf
Docs: https://fred-7da601c6.mintlify.app/introduction

I'm also building a hosted PDF generation API on top of this (HTML or React in → PDF out, no Chrome to manage), but the component library is fully open source and works standalone with Playwright/Puppeteer.

Would love feedback on the component API design. What PDF problems have you had that this doesn't solve?
by coder543 | 2026-03-12 13:27:43+00:00
Parakeet is insanely fast and much more accurate, and it doesn't really matter that Whisper requires hacks to work live when those hacks have existed for years and work great. (The Hello Transcribe app on iOS is a great example of how well Whisper can work with live streaming on an iPhone. The smaller models are extremely fast, even with the "hacks".)

Parakeet TDT's architecture is actually a really cool way to boost both the speed and efficiency of real time STT.
Show HN: I built an SDK that scrambles HTML so scrapers get garbage
by larsmosr | 2026-03-12 13:27:53+00:00
Hey HN -- I'm a solo dev. Built this because I got tired of AI crawlers reading my HTML in plain text while robots.txt did nothing.

The core trick: shuffle characters and words in your HTML using a seed, then use CSS (flexbox order, direction: rtl, unicode-bidi) to put them back visually. Browser renders perfectly. textContent returns garbage.

On top of that: email/phone RTL obfuscation with decoy characters, AI honeypots that inject prompt instructions into LLM scrapers, clipboard interception, canvas-based image rendering (no img src in DOM), robots.txt blocking 30+ AI crawlers, and forensic breadcrumbs to prove content theft.

What it doesn't stop: headless browsers that execute CSS, screenshot+OCR, or anyone determined enough to reverse-engineer the ordering. I put this in the README's threat model because I'd rather say it myself than have someone else say it for me. The realistic goal is raising the cost of scraping -- most bots use simple HTTP requests, and we make that useless.

TypeScript, Bun, tsup, React 18+. 162 tests. MIT licensed. Nothing to sell -- the SDK is free and complete.

Best way to understand it: open DevTools on the site and inspect the text.

GitHub: https://github.com/obscrd/obscrd
by mfjordvald | 2026-03-12 13:28:02+00:00
There's tons of options, no-intro, redump, tosec, mame are all doing DAT files with file checksums.

That said, ROMs are basically never a malware vector as they have to exploit an issue in the emulators themselves and historically that hasn't really been seen. Typically malware related to roms happens with files included in the zip archives or by sites offering "downloaders" with embedded malware.
Show HN: PromptSonar – Static analysis for LLM prompt security
by meghal86 | 2026-03-12 13:28:23+00:00
I built PromptSonar because I kept seeing LLM security
discussions focus entirely on runtime interception — but
nobody was scanning the prompt strings written directly
into source code before they ship.

PromptSonar is a static analyzer that scans your codebase
for prompt injection, jailbreaks, PII leaks, and privilege
escalation patterns in LLM prompt strings. It works across
TypeScript, JavaScript, Python, Go, Rust, Java, and C#.

What it catches:
- Direct prompt injection and jailbreak patterns
- Unicode evasion: Cyrillic homoglyphs, zero-width character
injection, Base64-encoded jailbreaks
- PII exposure in prompts (SSN, credit card, API keys)
- Privilege escalation and role manipulation
- RAG poisoning patterns
- Insecure output handling

Maps findings to OWASP LLM Top 10. Outputs SARIF v2.1.0
for GitHub Code Scanning integration. 100% local,
zero telemetry, no API calls.

Available as VS Code extension, CLI, and GitHub Action.

npx @promptsonar/cli scan ./src

I wrote up the Unicode evasion detection methodology
separately if anyone is interested in how the
normalization pipeline works:
https://medium.com/@meghal86/detecting-unicode-homoglyph-and...
Show HN: Arkadia – AI characters based on real animals
by didarsingh | 2026-03-12 13:28:38+00:00
Hi HN,

I've been working on a small project called Arkadia.

The idea started when I put a collar camera on my dog and experimented with using AI to narrate things from her point of view. That led me down a rabbit hole thinking about animal personalities and how people might interact with them.

Arkadia is a conversational AI app where you can chat with characters inspired by real animals.

The goal is to make it feel like discovering animals through conversation rather than interacting with a generic chatbot.

It's still early, but we have a few hundred people using it while I test conversation quality, memory, and latency.

One direction I'm exploring is using AI as a bridge to the real world. For example, after chatting with a character inspired by a specific breed or animal, you could discover farms, shelters, or places nearby where you could actually meet animals in real life.

Curious what the HN community thinks.
by SilverElfin | 2026-03-12 13:28:51+00:00
I am surprised it’s that high in 2025. Movie theaters always have noisy people who won’t stop talking, overpriced snacks, and the inconvenience of planning for a time. Watching at home is way better. But also there’s little to watch. Most movies are just unimaginative, recycling things lazily, like marvel. I can’t understand the appeal.
by alhirzel | 2026-03-12 13:29:06+00:00
It's the butterfly effect. After the momentum exchange (the rocket slamming, stuff being ejected in the impact, etc), the entire system was left with different properties. From now on, the equation F=Gm1m2/r^2 will have a different m1, and you can sum the equation over all m2 (literally every other massive object in the universe).
by fc417fc802 | 2026-03-12 13:29:31+00:00
Not so. Certainly in many contexts it is a clue that reframing the problem might be useful but you certainly don't need to. In many cases doing so might even be counterproductive. There are times when being frustrated or even angry at the situation you find yourself in is the right thing.

I'm not saying that's necessarily the case here. Just observing that frustration doesn't necessarily imply that you're wrong. Of course the inverse is also true. Being frustrated doesn't mean others are necessarily in the wrong - it might well be your own damn fault.
by tremon | 2026-03-12 13:29:59+00:00
Problem is, development doesn't operate on the level of "files". The incremental currency of developers is changes, not files -- and those changes can be both smaller and larger than files. Would you rather see different indentation/braces in different files so that the changeset you're reviewing is consistent, or rather see different indentation/braces in the changeset so that the files being changed remain internally consistent? And what about refactorings where parts of code are moved between files? Should the copied lines be altered so they match the style of the target file?

Point being, "different indentation in different files" is never a realistic way of talking about code style. One way or another, it's always about different styles in the same code unit.
by yuu1ch13 | 2026-03-12 13:30:40+00:00
Hi everyone, I'm the developer of Calyx.

I was a Ghostty user but kept running into the same problem: too many tabs, no way to organize them. Ghostty doesn't have tab groups or a plugin system, so I built Calyx using libghostty as the rendering engine.

The idea is simple — keep Ghostty's speed, but add the workflow features I was missing:

- Tab Groups — color-coded, collapsible groups to organize tabs by project

- Command Palette (Cmd+Shift+P) — search and run any action

- Session Persistence — tabs, splits, and working directories survive restarts

- Notification Badges — OSC 9/99/777 notifications with per-tab badge counts

- Built-in Browser — open docs right next to your terminal

- Terminal Search (Cmd+F) — find text in terminal output

- Git Diff View — inline source control diffs

- IPC MCP Server — programmatic control from tools like Claude Code (Demo: https://youtu.be/LHY-NJEqBTg)

- Scrollbar, cursor-click-to-move, Liquid Glass UI throughout

Happy to answer any questions.
by thomasfromcdnjs | 2026-03-12 13:30:47+00:00
I was looking for a comment like this.

I have done interviews with companies that I generally thought were wholesome enough, but you can't control how individuals feel on certain days, they could be going through some dark days at home etc.

I'm not sold on AI interviews, but it could actually end up letting you fully share your experience more than a human could on average.
by larsmosr | 2026-03-12 13:30:49+00:00
Hey HN -- I'm a solo dev. Built this because I got tired of AI crawlers reading my HTML in plain text while robots.txt did nothing.

The core trick: shuffle characters and words in your HTML using a seed, then use CSS (flexbox order, direction: rtl, unicode-bidi) to put them back visually. Browser renders perfectly. textContent returns garbage.

On top of that: email/phone RTL obfuscation with decoy characters, AI honeypots that inject prompt instructions into LLM scrapers, clipboard interception, canvas-based image rendering (no img src in DOM), robots.txt blocking 30+ AI crawlers, and forensic breadcrumbs to prove content theft.

What it doesn't stop: headless browsers that execute CSS, screenshot+OCR, or anyone determined enough to reverse-engineer the ordering. I put this in the README's threat model because I'd rather say it myself than have someone else say it for me. The realistic goal is raising the cost of scraping -- most bots use simple HTTP requests, and we make that useless.

TypeScript, Bun, tsup, React 18+. 162 tests. MIT licensed. Nothing to sell -- the SDK is free and complete.

Best way to understand it: open DevTools on the site and inspect the text.

GitHub: https://github.com/obscrd/obscrd
by jbaber | 2026-03-12 13:30:55+00:00
This happened to me.

I tried to be a good boy and wrote to the company asking for zipper parts to fix it and they told me to buy another jacket.

So I looked for companies that advertise repairability and found Patagonia made the most believable claims. Quite reasonable now that I'm old and rich, but I wouldn't have had the choice when young and poor.
by lowkj | 2026-03-12 13:31:01+00:00
To be clear, that article is about the base m5, not the m5 pro or m5 max.

https://www.apple.com/newsroom/2026/03/apple-introduces-macb...

"The new MacBook Pro delivers up to 2x faster read/write performance compared to the previous generation reaching speeds of up to 14.5GB/s..."
by BoppreH | 2026-03-12 13:31:09+00:00
Controversial opinion from a casual user, but state-of-art LLMs now feel to me more intelligent then the average person on the steet. Also explains why training on more average-quality data (if there's any left) is not making improvements.

But LLMs are hamstrung by their harnesses. They are doing the equivalent of providing technical support via phone call: little to no context, and limited to a bidirectional stream of words (tokens). The best agent harnesses have the equivalent of vision-impairment accessibility interfaces, and even those are still subpar.

Heck, giving LLMs time to think was once a groundbreaking idea. Yesterday I saw Claude Code editing a file using shell redirects! It's barbaric.

I expect future improvements to come from harness improvements, especially around sub agents/context rollbacks (to work around the non-linear cost of context) and LLM-aligned "accessibility tools". That, or more synthetic training data.
by HarHarVeryFunny | 2026-03-12 13:31:13+00:00
Of course in general there's a difference between novel and discovering something new.

Pretraining has given the LLM a huge set of lego blocks that it can assemble in a huge variety of ways (although still limited by the "assembly patterns" is has learnt). If the LLM assembles some of these legos into something that wasn't directly in the training set, then we can call that "novel", even though everything needed to do it was present in the training set. I think maybe a more accurate way to think of this is that these "novel" lego assemblies are all part of the "generative closure" of the training set.

Things like generating math proofs are an example of this - the proof itself, as an assembled whole, may not be in the training set, but all the piece parts and thought patterns necessary to construct the proof were there.

I'm not much impressed with Karpathy's LLM autoresearch! I guess this sort of thing is part of the day to day activities of an AI researcher, so might be called "research" in that regard, but all he's done so far is just hyperparameter tuning and bug fixing. No doubt this can be extended to things that actually improve model capability, such as designing post-training datasets and training curriculums, but the bottleneck there (as any AI researcher will tell you) isn't the ideas - it's the compute needed to carry out the experiments. This isn't going to lead to the recursive self-improvement singularity that some are fantasizing about!

I would say these types of "autoresearch" model improvements, and pretty much anything current LLMs/agents are capable of, all fall under the category of "generative closure", which includes things like tool use that they have been trained to do.

It may well be possible to retrofit some type of curiosity onto LLMs, to support discovery and go beyond "generative closure" of things it already knows, and I expect that's the sort of thing we may see from Google DeepMind in next 5 years or so in their first "AGI" systems - hybrids of LLMs and hacks that add functionality but don't yet have the elegance of an animal cognitive architecture.
by larsmosr | 2026-03-12 13:32:02+00:00
Fair concern. obscrd actually preserves screen reader access. CSS flexbox order is a visual reordering property, so assistive tech follows the visual order and reads the text correctly. Contact components use sr-only spans with clean text and aria-hidden on the obfuscated layer. We target WCAG 2.2 AA compliance.

Happy to have a11y experts poke at it and point out gaps.
by selfradiance | 2026-03-12 13:32:06+00:00
The .well-known/ suggestion from neilv is worth taking seriously. It's an IANA-registered convention that already has broad adoption — security.txt, robots.txt equivalents, app associations, and a growing number of machine-readable discovery files use it. Putting the discovery document at /.well-known/satproto.json instead of /satellite/satproto.json would immediately signal to anyone familiar with web standards that this is a protocol endpoint, not a page on your site. It also avoids the path collision problem that the satproto_root.json fallback is trying to solve — .well-known is reserved specifically so it doesn't collide with your content.
by joenot443 | 2026-03-12 13:32:07+00:00
In all my years of emulation, I've never come across a malicious ROM for a major console.

Dolphin runs its own VM. Obviously anything is possible, but developing some kind of breakout-ROM which would infect the host machine is just way more engineering than I could imagine ever being worth it. The vector is just too complex, and the target (nerds downloading retro games) just isn't worth the squeeze.

Archive.org actually hosts a good chunk of the major Gamecube ROMs. Good luck!
by embedding-shape | 2026-03-12 13:32:27+00:00
> It's one of those "worst of both world" cases

It's also one of those cases where "perfect is the enemy of good enough", and also very easy to solve, offer a download/upload button that offers you to save the key, or upload a arbitrary one. Now every issue you mention disappears, and it's maybe ~50 lines of code...

And yes, loosing keys can mean you lose access. People who used 2FA are well aware of this problem, and yes it requires diligence. Also people who maintain their own cryptocurrency wallets seems to be able to handle this too, so not like it's completely impossible, just infeasible for the average Joe.
by spacecadet | 2026-03-12 13:32:43+00:00
I mean people have been saying a crash is coming for years... Consumers recklessly purchased homes and cars at double their value, while relocating for remote work that was never long term in the eyes of their employer. Sounds like a receipt for disaster or a repeat of 2008- however, so much has changed since 2008... whatever happens, Black Swan! Hope "you" have your ducks in a row... As for AGI, lol. A box of matmuls isnt going to solve any real problems, so far, as you point out- is can barely write software. LLMs are basically gifted children. Smart sounding, lacking wisdom, chaotic, and likely just going to end up not that impressive. Either way- before we ever see AGI, we better get our heads out of the holes of the wealthy and enact UBI...
by stevepike | 2026-03-12 13:32:50+00:00
The real issue with Rails apps is keeping up with the framework and language versions. There are really two categories of dependencies.

One-off libraries that don't have a runtime dependency on Rails are typically very low-maintenance. You can mostly leave them alone (even a security vulnerability is unlikely to be exploitable for how you're using one of these, as often user input isn't even getting through to them). For instance a gem you install to communicate with the stripe API is not typically going to break when you upgrade Rails. Or adding httparty to make some API requests to other services.

Then there are libraries that are really framework extensions, like devise for authentication or rspec for testing. These are tightly coupled to Rails, sometimes to its private internals, and you get all sorts of nasty compatibility issues when the framework changes. You have to upgrade Rails itself because you really do need to care about security support at that level, even for a relatively small company, so you can end up in a situation where leaving these other dependencies to fester makes upgrading Rails very hard.

(I run a startup that's a software-enabled service to upgrade old Rails apps).
by NukeMyDay | 2026-03-12 13:32:53+00:00
I built PingFalcon because I kept wasting time wondering whether a service outage was on my end or theirs.

It's a simple open-source tool that lets you pick the services you rely on daily — GitHub, Slack, Vercel, AWS, whatever — and see their live status at a glance. No accounts, no setup, just bookmark your personal URL and you're done.

For developers there's also a single API endpoint that aggregates the status of all your selected services in one call — useful if you want to pull outage info into your own dashboards or alerting pipelines.

The project is open source and free. Would love feedback and contributions.
by vmbm | 2026-03-12 13:32:55+00:00
It is incredibly hard to make money going short. Even if you are right about the direction, most short positions require interest payments to hold, or have some sort of decay built into the structure. So timing is everything and even then, if the underlying security slowly grinds down (instead of a quick abrupt move) you could still lose if the interest/decay on the short position outruns the downward movement on the underlying.

I have been actively trading in the market for a little over a year now, and while winning on a short position is probably the most satisfying trade for me, the overwhelming majority of those trades are losses and at this point I mostly treat them as hedges. I suspect that is true for most market participants as well.