MurphyA/hacker-news huggingface dataset:
by binocarlos | 2025-12-13 17:57:30+00:00
I use https://github.com/braden-w/whispering with an OpenAI api key.

I use a keyboard shortcut to start and stop recording and it will put the transcription into the clipboard so I can paste into any app.

It's a huge productivity boost - OP is correct about not overthinking trying to be that coherent - the models are very good at knowing what you mean (Opus 4.5 with Claude Code in my case)
by micha2718l | 2025-12-13 17:57:53+00:00
Hi HN,

I've been building a Python toolkit for analyzing underwater acoustic recordings (specifically from the Gulf of Mexico) to understand dolphin communication.

Two things make this project unique:

1. *The Tech:* It runs a full scientific Python stack (NumPy, SciPy, PyWavelets) entirely in the browser using Pyodide. You can load binary hydrophone data, apply wavelet denoising, and detect clicks/whistles client-side.

2. *The Experiment:* This is a study in "Human + AI" software development. The entire codebase, documentation, and the website were co-created with LLMs (Copilot/Gemini) acting as research assistants. We're trying to be radically transparent about this workflow to see if AI can accelerate scientific software.

*Key Features:*

- *Dolphain Studio:* Browser-based IDE for signal processing on real EARS data.

- *Showcase:* A gallery of "interesting" signals found by our scoring algorithms (spectral entropy + harmonic spread).

- *Open Data:* Built on the LADC-GEMM dataset (Gulf of Mexico Research Initiative).

- *Fun Toy Apps:* Browser based fun experiments that are really art inspired by the scientific process and the dolphins.

The goal is to make bioacoustics accessible to developers who might want to help decode these patterns, while exploring how AI can accelerate scientific software.

Repo: https://github.com/micha2718l/dolphain

Demo: https://dolphain.mantilabs.ai/portal/index.html

Would love feedback on the signal processing pipeline, the WASM performance, or the AI-assisted workflow!

(Quick note direct from the human involved: This is obviously heavily AI generated, but it comes from a lot of interaction and collaboration back and forth with the LLMs. The original code that the LLMs started from was all written by hand back in ~2017/2018. A big part of this project is to see how far we can push the AI help to get anyone interested involved. Also, listen to the dolphins, they probably have something important to say.)
by gaigalas | 2025-12-13 17:59:33+00:00
Why not introduce a single shared CSS for style consistency? Not full CSS separation, each tool could still have its local CSS.

Things like styling buttons, responsiveness, and so on are better solved once.

A good rule of thumb is: if the shared CSS fails to load, page still fully works but it might be uglier (weird fonts, etc). That's a reasonable rule for proper isolation (tools remain simple to understand, code remains reusable, etc).

I love the idea of self-contained tools, but you're already using CDNs. Having a shared CSS wouldn't hurt and actually make the tools better.

I would go as far as having a shared JS too (same idea, works if it doesn't load).

That's essentially what I did in https://alganet.github.io/spiral/ (also vibe coded).

Each spiral is mostly independent. You can go ahead and delete the shared CSS from the <head>, they still work and don't break funcionality. However, by having the shared CSS I made them consistent, made them friendly to phone users and so on.
by apparent | 2025-12-13 18:00:13+00:00
In all seriousness, people probably do more favors for attractive strangers. And HN is probably populated with average-looking people, at best. In some ways, this means that the stories posted here will be of true altruism.

On the other hand, if you asked a bunch of great-looking people what strangers had done for them, you'd get a bunch of stories about people who were very kind (but perhaps not entirely altruistic in their intent).
by mrweasel | 2025-12-13 18:01:26+00:00
I don't think so, but people are so distracted, by their phones, that they don't notice that other might need help.

There's also two or three generations of people now who are absolutely terrified of talking to others, so you have to exhibit so level of distress for them to act.

Generally though, I feel like people want to help strangers, and social media makes that easier to do. We have a local organisation that helps those less fortunate, and last year they wrote on Facebook a few days before Christmas that they had five familie (I think if was five), who hadn't been able to get help elsewhere and if people had food, or money they could spare. Took them just a few hours to ensure a nice Christmas for those families. Without social media, we wouldn't have known, and it basically only Facebook that can reach so many generous people in such a short time.
by eliben | 2025-12-13 18:01:34+00:00
Great work, Simon -- thanks for sharing!

One tool I'd really like to see in this format is a simple "turn the background of this PNG to transparent". Models still refuse to follow the instruction to create transparent backgrounds for logos they create, and I often have to look for other tools doing this as post-processing.

It's possible that this is too complicated for the "few hundred lines of js" code envelope, though.
by willahmad | 2025-12-13 18:01:37+00:00
without language level support, it makes code look like a mess.

Imagine, 3 level nesting calls where each calls another 3 methods, we are talking about 28 functions each with couple of variables, of course you can still clean them up, but imagine how clean code will look if you don't have to.

Just like garbage collection, you can free up memory yourself, but someone forgot something and we have either memory leak or security issues.
by fooker | 2025-12-13 18:02:27+00:00
Think of some coding heavy project you always wanted to do but haven't had time for.

Open up cursor-agent to make the repo scaffolding in an empty dir. (build system, test harness, etc. )

Open up cursor or Claude code or whatever and just go nuts with it. Remember to follow software engineering best practices (one good change with tests per commit)
by molticrystal | 2025-12-13 18:02:31+00:00
They have a bag of dirty tricks [0], here are a few highlights including a couple already mentioned:

/* Dead subpixel (Thanks M) */ .content[role=main]:before { content: ""; position: fixed; top: 126px; left: 242px; width: 1px; height: 1px; background: #f0f; z-index: 9999; } /* Hair */ .content[role=main]:after { content: ""; position: fixed; top: 150px; right: 150px; width: 140px; height: 200px; border-radius: 50%; box-shadow: 2px 0 rgb(60, 24, 24, 0.3); transform: skewX(-30deg) scale(0.6); pointer-events: none; z-index: 9999; } .thing.comment[id*=c] { transform: rotate(1deg); margin-top: 30px !important; } .comment p a{ font-family:Comic Sans MS, Impact,serif; }

[0] https://www.reddit.com/r/mildlyinfuriating/wiki/config/style...
by stockresearcher | 2025-12-13 18:02:59+00:00
X could do just about anything. It’s actually hard to know what the current state of liability is these days, now that platforms have integrated algorithmic decision-making regarding what to show you.

In Anderson v TikTok, the appeals court decided that since the little girl did not specifically search for the videos she watched, TikTok’s algorithm made what amounted to an editorial decision to show her the videos she watched and thus Section 230 did not give them any protection. TikTok ultimately chose not to appeal to the Supreme Court and thus this is the current state of the law in Pennsylvania, New Jersey and Delaware. Other courts may decide differently.

The general idea is that whenever algorithms are deciding what you see Section 230 is not in play - but the First Amendment might be. The Supreme Court hinted that this is how they view things, BTW. If this is how it is, then Section 230 is essentially a dead law already and losing it only affects old fashioned blogs and forums.
by ExoticPearTree | 2025-12-13 18:03:03+00:00
> I feel like using "Cosmic Rays" as a reason is equivalent to "Aliens".

This is actually a thing. Cisco had issues with cosmic radiation in some of their equipment a few years back. Same symptoms: random memory corruption, and when they would test the memory everything would check out, but once in a blue moon, the routers would behave erratically.
by helain | 2025-12-13 18:03:05+00:00
Before everything i want to tell you that i am working on a RAG project and you can check https://www.ailog.fr and our app https://app.ailog.fr/ . You can check it out if you want a production-ready RAG ( we have an API and we can scale to enterprise level if necessary ).

Next for the feedback part :

Evaluate LLM systems as three separate layers: model, retrieval or grounding, and tools. Measure each with automated tests plus continuous human sampling. A single accuracy metric hides user frustration. Instrument failures, not just averages.

Practical framework you can implement quickly:

Human in the loop: Review 1 to 5 percent of production sessions for correctness, safety, and helpfulness. Train a lightweight risk flagger.

Synthetic tests: 100 to 500 canned conversations covering happy paths, edge cases, adversarial prompts, and multimodal failures. Run on every change.

Retrieval and hallucinations: Track precision at k, MRR, and grounding coverage. Use entailment checks against retrieved documents.

Tools and integrations: Validate schemas, assert idempotency, run end to end failure simulations. Track tool call and rollback rates.

Telemetry and drift: Log embeddings, latency, feedback, and escalations. Alert on drift, hallucination spikes, and tool failures.

Weekly metrics: correctness, hallucination rate, retrieval precision at 5 and MRR, tool success rate, CSAT, latency, escalation rate. Pilot plan: one week to wire logging, two weeks to build a 100 scenario suite, then nightly synthetic tests and daily human review.

You can check out https://app.ailog.fr/en/tools to get some insight on way to evaluate your RAG, we have free tools here for you to check and use :)
by SOTGO | 2025-12-13 18:03:18+00:00
It's probably possible to use timestamps, but I suppose you would have to handle ties in more places, with sequence numbers you only break ties once. It appears that the FIX specifications allows up to microsecond precision, but given the volume of messages it's still likely a problem. It's also easier to work with integer sequence numbers than timestamps, but that's also a small consideration.
by crossroadsguy | 2025-12-13 18:03:40+00:00
Yours is an absurd response. Rage-bait? Still, I will bite - kind of.

1. You don’t need too much time to set this up.

2. All this doesn’t have to be in one sitting - with meds and coffee that keeps you awake through the sleeping hours

3. In fact it’s better if you do this over the weeks, months, years. For me it took years and I am still kind of doing it. Once in a while, here and there.

4. I am not very smart. If I was I’d have just ignored your comment.
by foltik | 2025-12-13 18:04:04+00:00
27us and 1us are both an eternity and definitely not SOTA for IPC. The fastest possible way to do IPC is with a shared memory resident SPSC queue.

The actual (one-way cross-core) latency on modern CPUs varies by quite a lot [0], but a good rule of thumb is 100ns + 0.1ns per byte.

This measures the time for core A to write one or more cache lines to a shared memory region, and core B to read them. The latency is determined by the time it takes for the cache coherence protocol to transfer the cache lines between cores, which shows up as a number of L3 cache misses.

Interestingly, at the hardware level, in-process vs inter-process is irrelevant. What matters is the physical location of the cores which are communicating. This repo has some great visualizations and latency numbers for many different CPUs, as well as a benchmark you can run yourself:

[0] https://github.com/nviennot/core-to-core-latency
by ModernMech | 2025-12-13 18:04:04+00:00
Yes, because LLMs don't change the fact that different programming languages have different expressive capabilities. It's easier to say some things in some languages over others. That doesn't change if it's an LLM writing the code; LLMs have finite context windows and limited attention. If you can express an algorithm in 3000 loc in one language but 30 loc in another, the more expressive language is still preferred, even if the LLM can spit out the 3000 lines in 1s. The reason being if the resulting codebase is 10 - 100x larger than it needs to be, that has real costs that are not mitigated by LLMs or agents. All things being equal, you'd still prefer the right tool for the job, which does not imply we should use Python for everything because it dominates the training set, it means we should make sure LLMs have capabilities to write other programming languages equally well before we rely on them too much.
by freejazz | 2025-12-13 18:04:04+00:00
>When you ask humans however there are all kinds of made-up "facts" they will tell you. Which is the point the parent makes (in the context of comparing to LLM), not whether some legal database has wrong cases.

Context matters. This is the context LLMs are being commercially pushed to me in. Legal databases also inherit from reality as they consist entirely of things from the real world.
by jes5199 | 2025-12-13 18:04:11+00:00
Cursor makes it easier to watch what the model is doing and to also make edits at the same time. I find it useful at work where I need to be able to justify every change in a code review. It’s also great for getting a feel for what the models are capable of - like, using Cursor for a few months make it easier to use Claude Code effectively
by gus_massa | 2025-12-13 18:05:03+00:00
I vote for 3, assuming it's enough money to live confortably.

1 and 2 expect full++ time, like 16 hours per day and sleeping in a couch under your desk. With a 9-5 you can turn off your phone and enjoy the time with your the kid and wife.

Protip: Sleep now, next 18 years are hard.
by NathanaelRea | 2025-12-13 18:07:04+00:00
I saw your other comment that you meant interface. But an example of a language that went without a feature people thought the language desperately needed was Go with generics. They only added them more than ten years later, when they figured out the best way to implement them.

It might be the same with gleam, with first version in 2019 and 1.0 in 2024. The language authors might think they are either uneeded and lead to anti patterns, or are waiting to see the best way to implement them.
by fallinditch | 2025-12-13 18:07:32+00:00
It's a little problematic to share an HTML file that you made or saved on your phone with other phone users directly, for example by sending via a messaging app: Android it's ok, but iOS won't open or save an HTML file sent in this way. Apparently there is a workaround to long press on the file to save it to your Files folder first.

This issue is relevant if your app's functionality includes the user changing the contents of the file and re-saving as a new file.
by sebastianlay | 2025-12-13 18:07:46+00:00
The level of integration of little electronics (like the LiDAR and the OLED screen) into a print is amazing! I am thinking about an electronic light meter that is coupled to the shutter and saves the current reading to an SD card, so that you could later sync the EXIF data to the scans.

Shameless plug: I have made a website that lists a lot of 3D printable film cameras (including the links to the print files). Feel free to have a look if you are thinking about printing your own camera. Some are really cheap and easy to print.

https://printed.analogcamera.space
by ethbr1 | 2025-12-13 18:07:49+00:00
The root issue/risk is from cascading service dependencies, and I'm 99% sure this is done unintentionally at Apple et al.

Team builds service. Service depends on first party identity/authentication because it's easier.

... Fast forward 20 years, and no one at platform company even understands the dependency graph from a customer perspective anymore. Especially in the case of rare events like account locks.

Consequently, those customers face a sudden Kafkaesque maze of edge cases that don't line up, as the customer service processes people are funneled through are literally incapable of solving the problem.

Which means the entire "normal" customer support apparatus is unavailable to them. (The same apparatus companies aggressive shove all support through)

This is why there should be regulatory requirements for identity platforms mandating the ability to speak to a human who's empowered to fix your issue + an option for customer-choice decision arbitration + continuous random sample audits with penalties for falling below KPIs (timeliness, correctness, etc).

It should literally be illegal for a company to have their banning system 'oops' and then pretend they don't know you.

Because it's only going to get worse as more AI / probably correct methods infuse account security functions.
by seg_lol | 2025-12-13 18:08:19+00:00
Voice prompts, restate what you want, how you want it from multiple vantage points. Each one is a light cone in a high dimensional space, your answer lies in their intersection.

Use mind altering drugs. Give yourself arbitrary artificial constraints.

Try using it in as many different ridiculous ways you can. I am getting the feeling you are only trying one method.

> I've had a fairly steady process for doing this: look at each route defined in Django, build out my `+page.server.ts`, and then split each major section of the page into a Svelte component with a matching Storybook story. It takes a lot of time to do this, since I have to ensure I'm not just copying the template but rather recreating it in a more idiomatic style.

Relinquish control.

Also, if you have very particular ways of doing things, give it samples of before and after (your fixed output) and why. You can use multishot prompting to train it to get the output you want. Have it machine check the generated output.

> Simple prompting just isn't able to get AI's code quality within 90%

Would simple instructions to a person work? Esp a person trained on everything in the universe? LLMs are clay, you have to mold them into something useful before you can use them.
by lofaszvanitt | 2025-12-13 18:08:49+00:00
Sigh, power user doesn't mean the individual is an alien with some quirky taste. Oh, the contrary. It means someone who has a wider spectrum and those who are not power users are still on the spectrum, but theirs is shorter, but overlap with the PU's. So if it is good for the power users it is almost always good for the rest of the world. Let that sink in.
by cryptonector | 2025-12-13 18:08:52+00:00
Thank you for your thoughtful response.

I agree that Lite³ is almost certainly better than JSONB on every score except compressibility, but when Lite³ is your database format then that doesn't matter (you can always compress large string/blob values if need be). Compressibility might matter for interchange however, but again, if your messages are huge chances are there are compressible strings in them, or if they're not huge then you probably don't care to compress.
by simonw | 2025-12-13 18:09:09+00:00
Running this now...

Build transparent-png.html - a tool that lets you open any image and then click on colors within that image to make them transparent - showing a preview of the resulting PNG against a checkerboard pattern and optional against other selected background colors below, plus a download PNG option It should also accept pasted images

Here's what I got (from Opus 4.5 in Claude Code for web via the Claude iPhone app): https://tools.simonwillison.net/transparent-png
by mmaunder | 2025-12-13 18:09:59+00:00
Solid approach. Don’t be shy about writing long prompts. We call that context engineering. The more you populate that context window with applicable knowledge and what exactly you want, the better the results. Also, having the model code and you talk to the model is helpful because it has the side effect of context engineering. In other words you’re building up relevant context with that conversation history. And be acutely aware of how much context window you’ve used and how much is remaining and when a compaction will happen. Clear context as early as you can per run. Even if it’s 90% remaining.
by yjftsjthsd-h | 2025-12-13 18:10:10+00:00
If the difference is <1 minute vs >30 minutes, containers (per se) are not the problem. If I was guessing blindly, it sounds like you're not caching/reusing layers, effectively throwing out a super easy way to cache intermediate artifacts and trashing performance for no good reason. And in fact, this is also a place where I think docker - when used correctly - is quite good, because if you (re)use layers sensibly it's trivial to get build caching without having to figure out a per-(language|build system|project) caching system.
by compsciphd | 2025-12-13 18:10:13+00:00
I could imagine code that did something like this for primatives

secretStash := NewSecretStash() pString := secretStash.NewString() .... .... secretStash.Thrash()

yes, you now have to deal in pointers, but that's not too ugly, and everything is stored in secretStash so can iterate over all the types it supports and thrash them to make them unusable, even without the gc running.
by ok123456 | 2025-12-13 18:11:28+00:00
Stopped in the dark on a December night on the shoulder of an interstate junction to change a tire after I had a blowout while driving. Under normal circumstances, I probably could have handled it myself, but I was getting about four hours of sleep a night because of tinnitus.

I was very nervous when a random guy stopped. My initial thought was, "Am I about to be robbed?" But it turned out that he was just a local aerospace engineer, and it was his hobby to help stranded motorists.
by sbassi | 2025-12-13 18:11:52+00:00
I was at an antique shop in Alameda about to buy a pulp sci-fi book. It was just a couple of bucks, nothing expensive. But the card reader wasn't accepting my Apple Pay. Another guy shopping there offered to pay for me. I told him I could Venmo or PayPal him the money, but he wouldn't take it. It wasn't a big deal in terms of money, but he didn't have to do that
by jmward01 | 2025-12-13 18:11:53+00:00
I totally forgot about the remote. That really opens up possibilities for home assistant type stuff. I hadn't looked at this space a lot before. I see some articles on how to jailbreak various devices but nothing about standardized distros to put on things out there. Something like dd wrt but for TVs could be pretty amazing. A project that is designed to give you a good interface, is privacy aware and hacker friendly (things that aren't just entertainment like home assistant stuff) would get a lot of interest. There has to be a reason this isn't a thing. I am guessing it is 99% a hardware reason. Maybe that is changing though? Modern devices have to have more capability so I bet the hardware on newer tvs is getting pretty strong.
by graypegg | 2025-12-13 18:11:58+00:00
I love the name "software carpentry" haha.

IMO, I found those specific example tasks to be better handled by my IDE's refactoring features, though support for that is going to vary by project/language/IDE. I'm still more of a ludite when it comes to LLM based development tools, but the best case I've seen thus far is small first bites out of a big task. Working on an older no-tests code base recently, it's been things like setting up 4-5 tests that I'll expand on into a full test suite. You can't take more than a few "big" bites out of a task before you have 0 context as to what direction the vector soup sloshed in.

So, in terms of carpentry, I don't want an LLM framer who's work I need to build off of, but an LLM millworker handing me the lumber is pretty useful.