MurphyA/hacker-news huggingface dataset:
Show HN: SnapDrift – a pluggable visual regression workflow for GitHub Actions
by ranacseruet | 2026-03-10 17:32:24+00:00
Open sourcing SnapDrift:
https://github.com/ranacseruet/snapdrift
This came from a pretty narrow frustration:
visual regression checking often feels like it jumps from “roll your own pile of scripts” to “adopt a much bigger platform/workflow than you wanted.”

I wanted something in the middle.

SnapDrift is a small Node/ESM library plus a set of composite GitHub Actions for running visual checks in CI for web apps. The idea is:
* publish a baseline on main
* compare PR screenshots against the latest successful baseline
* scope routes based on changed files
* upload artifacts
* leave/update a PR comment with the drift summary
* optionally fail the run depending on how strict you want to be

A few constraints are deliberate:
* it assumes GitHub Actions, rather than pretending to be CI-agnostic
* it uses Playwright implicitly, rather than trying to abstract over every browser stack
* it only does full-page capture right now
* it keeps viewport presets fixed and the config surface fairly small

That may make it less generally “flexible,” but I think it makes it easier to reason about and easier to drop into an existing repo without building a mini platform around screenshot testing.

The goal wasn’t to invent a new category here. It was to make the common “compare UI on PRs and tell me what drifted” workflow less annoying and more review-friendly.

It’s early, but it’s public and usable now: https://github.com/ranacseruet/snapdrift

I’d especially love feedback on:
* whether the GitHub Actions-centric approach feels refreshingly narrow or too limiting
* whether changed-file route scoping is actually useful in practice
* what’s missing for teams already doing Playwright-based UI checks
by DonsDiscountGas | 2026-03-10 17:33:27+00:00
Hot take: being clueless is better than these essays make it out to be. The examples are all really socially annoying people (Michael, Dwight) but I've known some pretty nice and pleasant middle managers who had generally great lives. They probably could've gotten all of that with less work but perfectly hitting the Pareto frontier is quite difficult.
by RRFDunn | 2026-03-10 17:33:31+00:00
Hey, yes Aegis has MCP support. MCP tools are declared in the syntax with the provider, and the transpiler handles the client calls, audit events, and capability checks automatically. There's also A2A (Agent-to-Agent) support for inter-agent communication. As for integration with something like claudecode/gpt/cursor, should be fairly straightforward, there's a full language spec and syntax reference in the docs folder that LLMs can use as context.
by emotiveengine | 2026-03-10 17:33:31+00:00
Started this about 6 months ago. Wanted an animated character that could react to conversation, not just sit there as a static avatar.

First version was Canvas 2D. Shape morphing and particles. Worked fine for basic emotions but felt limited, so I added a WebGL 3D renderer with custom shaders, bloom, AO, a post-processing chain.

About 6 weeks ago I started the elemental system. Fire first. FBM noise, decoupled color from alpha so additive stacking looks natural instead of washing out. Then water (screen-space refraction, spray particles). By the third element (ice — Snell's law, Voronoi crack lines, chromatic dispersion), the architecture was clearly repeating: factory + instanced GPU material + overlay shader + gesture configs + registration hook. Same five pieces every time.

So I kept going. Electricity, earth, nature, light, void. Eight total in about 6 weeks. Wanted to see if the pattern held or if I'd been fooling myself.

161 gestures later it held. Each gesture is about 20 lines of config composing from archetypes. The factory does the rest.

Shuffle button in the demo shows all 161. Press G for the GPU monitor. `window.profiler` is exposed if you want to poke around.

Happy to talk about any of the shaders, the rendering pipeline, or things I got wrong along the way.
by Terr_ | 2026-03-10 17:33:38+00:00
That might satisfy message-privacy and connectivity, but it seems it'd be vulnerable when it comes to identity-privacy and detection.

I suppose you could use an LLM on each end to write superficially plausible messages and use ~sten~ steganography, although then there's still the problem of "Weird, this user types at 500WPM without sleeping."
by BeetleB | 2026-03-10 17:33:48+00:00
Similar story, albeit not so extreme. I have similar ergonomic issues that crop up from time to time. My programming is not so impacted (spend more time thinking than typing, etc), but things like email, documentation, etc can be brutal (a lot more computer usage vs programming).

My simple solution: I use Whisper to transcribe my text, and feed the output to an LLM for cleanup (custom prompt). It's fantastic. Way better than stuff like Dragon. Now I get frustrated with transcribing using Google's default mechanism on Android - so inaccurate!

But the ability to take notes, dictate emails, etc using Whisper + LLM is invaluable. I likely would refuse to work for a company that won't let me put IP into an LLM.

Similarly, I take a lot of notes on paper, and would have to type them up. Tedious and painful. I switched to reading my notes aloud and use the above system to transcribe. Still painful. I recently realized Gemini will do a great job just reading my notes. So now I simply convert my notes to a photo and send to Gemini.

I categorize all my expenses. I have receipts from grocery stores where I highlight items into categories. You can imagine it's painful to enter that into a financial SW. I'm going to play with getting Gemini to look at the photo of the receipt and categorize and add up the categories for me.

All of these are cool applications on their own, but when you realize they're also improving your health ... clear win.
Show HN: MoveAlerts.ai – AI that distills stock news in real-time
by pyfreak182 | 2026-03-10 17:34:10+00:00
I built MoveAlerts.ai, a system that analyzes stock news in real time and surfaces market-moving stories using AI.

The pipeline ingests news, links articles to stock tickers, and publishes sentiment signals to a live feed and Discord alerts.

It currently:

- Scans news sources across the web for 10,000+ tickers

- Uses AI to analyze sentiment and importance of each story

- Sends alerts for market-moving news

- Generates summaries and bullish/bearish scores

- Tracks most mentioned stocks in the news and on Reddit

Curious what people think and happy to answer questions.

https://www.movealerts.ai
by crazygringo | 2026-03-10 17:34:22+00:00
I think you've misunderstood me.

I suggested raising taxes in the first place.

What I'm opposed to is some hand-wavy demand to "take personal responsibility" without suggesting exactly what they're supposed to do and whether any tradeoffs involved are reasonable.

And please don't call people names. You can write comments here without calling other people "keyboard warriors". Nor is it helpful to try to shut down some viewpoint by claiming that somebody doesn't need any extra support.

And I think most people would consider not seeing their family more than e.g. four times a year more than just the "mildest inconvenience".
by pphysch | 2026-03-10 17:34:23+00:00
Why are you implying that converting from base64 to and from standard UUID representation (hyphen-delimited hexadecimal) is more than a trivial operation? Either client or server can do this at any point.

Does Postgres not truly support UUID because it internally represents it as 128 bits instead of a huge number of encoded bytes in the standard representation? Of course not.
by arcsight | 2026-03-10 17:34:37+00:00
ArcSight analyzes your dependency graph and shows you where refactors will hurt—before you ship.

You get: architecture score, dependency cycles, high-fan-in hotspots, impact simulation. Static analysis only; no code leaves your machine. Runs in CI. Works with TypeScript, Node, monorepos.

We also built a discovery layer on the same pipeline: repo pages, pattern indexes (modular monolith, high coupling, dependency hell), leaderboards, embeddable badges. All deterministic.

If you’ve ever avoided touching a module because “everything depends on it,” this is for you. Happy to answer questions.
by rsync | 2026-03-10 17:35:06+00:00
"I don't think this is good advice to the kinds of people who don't know if they should be running 14.4 or 15.0."

You don't need to wonder about this because FreeBSD has an official, documented position on this topic[1]:

"... include work in progress, experimental changes and transitional mechanisms that may or may not be present in the next official release ..."

"... whether or not FreeBSD-CURRENT sources bring disaster or greatly desired functionality can literally be a matter of which part of any given 24 hour period you grabbed them in!"

"(is not) In any way ``officially supported'' by us."

[1] https://docs-archive.freebsd.org/doc/4.4-RELEASE/usr/share/d...
by vm64 | 2026-03-10 17:37:04+00:00
Congrats on the launch! Hard to judge from just demo videos but the flow seems much nicer than those I’ve encountered in many apps.

A couple questions:
1. Given that one of your offerings is a wallet for identity, how do you handle storing user biometric data and documents
2. I’m surprised AI age detection based on faces is accurate enough to be used for account decisions. Is there any specific standard your models are held too and why would someone prefer it over an ID document proving age?
by legitronics | 2026-03-10 17:37:09+00:00
I also pay for yt premium.

Most people do not seem to like pay to play, pay to “win”, etc and this falls either very close or in that category.

The long term economics seem questionable to me. Google can always turn up the heat a bit more with ads, charge more for the ads, play more of them, etc when they need to be more profitable. The only way they make more from premium subscribers is charging more and they will lose people each time they do. I guess technically they could make more if premium watchers viewed less content but there’s a pretty hard floor and I suspect the economics of it are much like soda fountains.

I’m afraid ultimately if premium becomes too large of a user base Google would need to turn it into an “ad-lite” experience to increase profits. Then we’re in an even worse place.
by ralferoo | 2026-03-10 17:37:14+00:00
True | False | FileNotFound was a meme about 2 decades ago, and even that was a reference to MSDOS from another 2 decades earlier. I guess things never change, only the language.

Even now, I still find myself using true/false/null on occasions, but I'm usually smart enough to replace it with an enum at that point. The only time I don't is when it's an optional parameter to a function to override some default/existing value, at which point it then makes sense to keep it as an optional bool.
by AnthonyMouse | 2026-03-10 17:37:17+00:00
If someone can fix Windows problems by looking it up on the internet, they can fix Linux problems by looking it up on the internet. If they can't, they were going to call you anyway. Or worse, call the vendor and get snookered into an upsell. Or worse yet, call some random "Windows Support" number and give up their payment info.

Are we all such jerks that we can't spend a few hours a year talking to our families and instead have to subject them to the ravages of whatever scammer's blogspam SEOs itself to the first page of Google?
by kkukshtel | 2026-03-10 17:37:19+00:00
Just taking this moment to share something I made from a similar point of frustration — https://mood.site

It's a free online photo gallery app where auth is done through URL query params. You make a board, it gets an edit key, and then if you share that url with anyone else (including grandma) they can upload photos without needing to make an account. You can drag and drop, use the upload button, and it works on mobile as well.

There are lots of other little features as well, but the core thing is just a dead simple (online) photo gallery tool. You can see some sample boards here:

https://mood.site/Prp_-CPS

https://mood.site/WvP4xd6x

https://mood.site/N3kHLWkJ
by phn | 2026-03-10 17:37:19+00:00
A good example of this is Rust. Rust is by default memory safe when compared to say, C, at the expense of you having to be deliberate in managing memory. With LLMs this equation changes significantly because that harder/more verbose code is being written by the LLM, so it won't slow you down nearly as much. Even better, the LLM can interact with the compiler if something is not exactly as it should.

On a different but related note, it's almost the same as pairing django or rails with an LLM. The framework allows you to trust that things like authentication and a passable code organization are being correctly handled.
by d1dd40135cfdc5c | 2026-03-10 17:37:29+00:00
(I want to emphasize that my intention is not to criticize Didit negatively. Rather, I aim to offer constructive feedback.)

IMO, you should spend a lot of time working on your privacy policy. I have identified a few points of concern that you should work on:

1. Your policy is immensely vague. "legally stipulated periods of conservation" means nothing. There are no references to which laws are being referenced, and there are no references to specific timeframes. Concrete detail is most needed here.

2. Under section 4, there is no mention of response timeframes (GDPR mandates 30 days), no indication of what to include in a request, and no acknowledgement of the right to escalate if Didit fails to respond.

3. You mention processing biometric data in passing and note consent as the legal basis. For special category data under GDPR Article 9, this deserves substantially more transparency -- what biometric data, how it is stored, whether it is retained after identity verification, and what happens if consent is withdrawn. One sentence is not adequate.

4. "Didit will have adopted appropriate data protection safeguards in advance" is very vague. You should specify the transfer mechanism and actually identify which third countries are involved.

5. Your legitimate interest claim for contact persons (section 2b) is asserted without any balancing test explanation, which is technically required under the GDPR.

Your information security policy is purely a mission statement. It is only a list of things you intend to do, without any explanation about how you either currently or will implement these things.

For example, "align with the highest standards of security" -- which standards? ISO 27001? SOC 2? NIST? "achieve the fully satisfactory resolution of incidents" -- what constitutes "satisfactory"? What is your incident response process?

If you intend to take data security and privacy seriously, both documents must be improved greatly before I as a consumer would consider handing my data over to this service.
by jonnycoder | 2026-03-10 17:37:57+00:00
I tend to agree. I spent a lot of time revising skills for my brownfield repo, writing better prompts to create a plan with clear requirements, writing a skill/command to decompose a plan, having a clear testing skill to write tests and validate, and finally having a code reviewer step using a different model (in my case it's codex since claude did the development). My last PR was as close to perfect as I have got so far.
by MisterTea | 2026-03-10 17:38:20+00:00
I fix everything I can. This past summer my Pelonis table fan fell and broke its base. I took a piece of water damaged wood shelf (veneered plywood) that I saved and used a jigsaw to cut a new base which I screwed to the bottom of the broken fan base. It works and the wood adds a little weight so its less prone to wobble. Two objects saved from the trash.
by bonesss | 2026-03-10 17:38:21+00:00
From a management perspective I would be highly skeptics of token leaderboards. You are incentivizing people to piss away company money with uncertain rewards.

I mean… throw some docs into the context window, see it explode. Repeat that a few times with some multi-step workflows. Presto, hundreds of dollars in “AI” spending accomplishing nothing. In olden days we’d just burn the cash in a waste paper basket.
by finaard | 2026-03-10 17:38:35+00:00
The slowness on startup in my emacs mainly comes from my customizations - over the last almost 3 decades I've accumulated roughly 30k loc of custom lisp, plus a lot of 3rd party stuff.

But I typically start emacs at boot, and then it runs until I reboot. I usually have one GUI frame, and one tui frame running in tmux so I can easily attach to my emacs session from a different computer. I have an emacsclient wrapper that opens stuff from the command line in my running emacs (and also mail wrappers, so clicking on a mail link in a browser opens a mail compositor in emacs).

I'm using eyebrowse with a bunch of own convenience features for workspaces in emacs - stuff like "when I switch to a buffer it'll switch to the workspace wher e that buffer is open unless I tell it I want it here". Combine that with some custom SSH entry points and especially on the notebook where I only have one screen it's way more comfortable to use than the OS window management for a terminal/ssh session messy like me.
by samiv | 2026-03-10 17:38:37+00:00
With respect I say that the one can only feel gobsmacked about how much complexity has grown.

In the 60s inventing one single algorithm with 10 lines of code was a thing.

If you did that today nobody would bat an eye.

Today people write game engines, compilers, languages, whole OS and nobody bats an eye cause there are thousands of those.

Quick sort isn't even a thing for leet code interviews anymore because it's not hard enough.
by kdheiwns | 2026-03-10 17:39:26+00:00
It can output books verbatim. It often "mistakenly" embeds watermarks from famous artists into generated pictures. Arguing that it's not stealing because a bought and owned legal system, which worked at a glacial pace even before it was completely bought off, isn't theft just because a law doesn't exist yet is silly. It's analogous to saying that dumping uranium and blowing up nukes everywhere in the 1940s and 1950s was great and non-polluting because there wasn't a law against it and nobody is being hurt (and cancer takes a while to develop, so nobody can prove their cancer was from nukes nearby). People argued back and forth back in the day about it. Now we realize that waiting for laws was dumb because it was pretty obviously bad not just in retrospect, but at the time. AI makes shoddy copies of good stuff. It pollutes the internet in ways that'll outlive us, just like a nuke does to the world. And it's pure cancer.
by Joe_Cool | 2026-03-10 17:39:40+00:00
Shouldn't matter when I am not on GUI seat. In my SSH session with X11 forwarding there is no DISPLAY emacs could use.

Tried it anyways, looks the same:

$ time emacs -nw -Q -e kill-emacs
real 0m0.075s
user 0m0.062s
sys 0m0.013s
by crystal_revenge | 2026-03-10 17:39:58+00:00
Europe doesn't want to be reliant (understandably) on the US military for defense, because if they are, as Trump has demonstrated, they will be pressured to make concessions not in their interests. Russia has spent the last four years completely transitioning to a military economy.

The need for a military is tightly coupled with the EU's need for energy. You can see this in the immediate impact that the war in Iran has had on Germany's natural gas prices [0]. But already unable to defend itself from Russia, EU countries are in a tough spot since they can't really afford to expend military resources defending their energy needs, and yet also don't have the energy independence to ignore these military engagements without risk. Meanwhile Russia has spend the last 4 years transition to a wartime economy and is getting hungry for expanded resource acquisition.

The world hasn't fundamentally changed since the stone age: humans need resources to survive and if there aren't enough people for those resources then violence will decide who has access the them.

0. https://tradingeconomics.com/commodity/germany-natural-gas-t...
by ben_w | 2026-03-10 17:40:15+00:00
> What is the value of the EU if's it not coordinating multi-national scale efforts?

Remember the EU is just a fancy self-updating free trade agreement, not a nation.

The coordination that the member states have thus far allowed the EU to take responsibility for is ~ "make all our rules be equivalent so everyone's degrees are accepted everywhere, everyone's food is accepted everywhere, we all agree what counts as a safe consumer product, limited range for tax shenanigans, etc."

(And for this, they get denounced as "complex" and "bureaucratic").

Actual direct investments do also exist, I just missed out on one for startups 20 years back apparently due to a rules change, but it's peanuts compared to what member state governments do directly.
by Kai20211111 | 2026-03-10 17:40:21+00:00
I kept mashing 1 to accept changes in Claude Code, so I automated it. It spawns your command in a PTY and pipes "1" into stdin on a loop.

npm install -g press-one
press-one --delay 3000 claude "fix all the bugs"

Known "features": a slow stream of 11111 appears while the model is thinking, and you can't type because stdin belongs to the machine now. Zero dependencies (just Node + Python for PTY allocation). MIT licensed.
by sothatsit | 2026-03-10 17:40:35+00:00
The people likely to submit low-effort contributions are also the people most likely to ignore policies restricting AI usage.

The people following the policies are the most likely to use AI responsibly and not submit low-effort contributions.

I’m more interested in how we might allow people to build trust so that reviewers can positively spend time on their contributions, whilst avoiding wasting reviewers time on drive-by contributors. This seems like a hard problem.
by anleodhasach | 2026-03-10 17:41:09+00:00
I recognise the grief that you are feeling. People say time will help with healing, but as it's not a linear process, it is hard to latch onto the hope that it will. But time does let you step through the different stages of grief. It sounds like you are working through it, though. The gaming may seem empty, but it might be a coping strategy as well, and that is letting you come to terms with things, quietly in the background. You are asking questions, how to help yourself, this is a big step. You mention being alone and the effect it is having on you - would there be friends whose company you would enjoy, even for small periods? Meeting up for a walk, say. Small things. From your post, it looks like you are asking the right questions for yourself.
by stingraycharles | 2026-03-10 17:41:36+00:00
I’m a bit confused by what you’re offering. Is it a voice assistant / AI as described on your GitHub? Or is it more general purpose / LLM ?

How does the RAG fit in, a voice-to-RAG seems a bit random as a feature?

I don’t mean to come across as dismissive, I’m genuinely confused as to what you’re offering.
by lambda | 2026-03-10 17:42:01+00:00
It may be prettier looking. I've seen many Git GUIs that are prettier than Magit.

But none of them that I've tried have ever come close to the workflow.

I can stage and unstage individual hunks, do complex interactive rebases, squash commits, break apart commits, etc. much faster in Magit than I can in other Git GUIs.

Maybe you're hung up on the "G" part; perhaps I should have just said "UI" rather than "GUI".

So no, I haven't tried that one because it's Mac only, but I'm not really seeing from the screen recordings the kind of workflow that I find so powerful in Magit.