MurphyA/hacker-news huggingface dataset:
by thesuitonym | 2025-12-30 15:58:11+00:00
It sounds like you want to play EVE Online, but as a guy with a sword rather than a guy in a spaceship. There is a story, but it doesn't really matter and there's no direct way to interact with it. Systems are given safety ranking from 0.0 to 1.0, depending on how fast the NPCs show up and destroy your ship. Even in 1.0 space you're not really "safe" from someone deciding they just want to blow you to smithereens.
by ModernMech | 2025-12-30 15:59:06+00:00
This is my feeling as well. It feels to me that based on the current product, Swift had two different designers: one designer who felt swift needed to be a replacement for Objective C and therefore needed to feel like a spiritual successor to that language, which meant it had to be fundamentally OOP, imperative, and familiar to iOS devs; and another designer who wanted it to be a modern functional language for writing dynamic user interfaces with an advanced type checker, static analysis, and reactive updates for dynamic variables.

The end result is a language that brings the worst of both worlds while not really bringing the benefits. An example I will give is SwiftUI, which I absolutely hate. You'd think this thing would be polished, because it's built by Apple for use on Apple devices, so they've designed the full stack from editor to language to OS to hardware. Yet when writing SwiftUI code, it's very common for the compiler to keel over and complain it can't infer the types of the system, and components which are ostensibly "reactive" are plagued by stale data issues.

Seeing that Chris Lattner has moved on from Swift to work on his own language, I'm left to wonder how much of this situation will actually improve. My feeling on Swift at this point is it's not clear what it's supposed to be. It's the language for the Apple ecosystem, but they also want it to be a general purpose thing as well. My feeling is it's never not going to be explicitly tied to and limited by Apple, so it's never really going to take off as a general purpose programming language even if they eventually solve the design challenges.
Show HN: Flipper Zero MCP – Control Your Flipper Using AI via USB or WiFi
by busseio | 2025-12-30 15:59:33+00:00
I built an modular MCP server that lets AI control a Flipper Zero.

The basic idea: you tell Claude "write a BadUSB script that opens a rickroll" and it generates the DuckyScript, validates it, saves it to your Flipper, and can execute it.

I've launched the project with 14 MCP tools across 4 modules:

1. BadUSB: generate/validate/save/diff/execute DuckyScript from natural language
2. Music: create and load FMF files to be played over the Flipper's piezo speaker ("make me the theme song to Castlevania")
3. System: device info, SD card status, connection health
4. Connection: health checks, reconnect

...the code is modular so you can create your own modules.

To me, the interesting technical bit is the WiFi support. Flipper's protobuf RPC is designed to work over USB serial. The stock WiFi dev board firmware is for debugging, not RPC.

I wrote custom ESP32-S2 firmware, a TCP <-> UART bridge that exposes the full RPC interface over your network. It includes a captive portal for WiFi config and handles Flipper's Expansion Protocol negotiation. Firmware is in the repo: /firmware/tcp_uart_bridge

Architecture:
- MCP client (Claude Desktop, Cursor, etc.) <-> MCP server (Python, stdio) <-> Flipper Zero (protobuf RPC over USB or TCP)
- Transport-agnostic: same protobuf either way
- Modular: easy to add new Flipper capabilities

This is (I believe) the first MCP server for Flipper Zero. There are MCP servers for ESP32s and Arduinos, but those control the microcontroller itself. This controls the Flipper as a tool.

I look forward to feedback, especially from any other Flipper users who get it running over Wifi!
by mapontosevenths | 2025-12-30 15:59:40+00:00
I did some of that when I was younger. I started with assembly and C, even though everyone told me to skip it and start with at least C++ or something further up the abstraction ladder. Ignoring them and gaining that knowledge has proven invaluable over the years.

Understanding a "deeper" abstraction layer is almost always to your advantage, even if you seldom use it in your career. It just gives you a glimpse behind the curtain.

That said, you have to also learn the new tools unless you tend to be a one man band. You'll find that employers don't want esoteric knowledge or all-knowing wizards who can see the matrix. Mostly, they just want a team member who can cooperate with other folks to get things done in whatever tool they can find enough skilled folks to use.
by adastra22 | 2025-12-30 16:00:04+00:00
Even the second time, for different reasons. There was a lot of anger at how the Democratic Party kept the details of Biden’s decline hidden, and then did an emergency switcharoo at the last minute without a second primary. A lot of dem voters felt disenfranchised, and didn’t bother voting, or filed a protest vote thinking Trump would be as ineffectual the second time around as he was the first.
by elktown | 2025-12-30 16:00:17+00:00
> It's the folks who are arguing with you trying to say that AI is useless who will quickly lose their jobs.

Why is it that in every hype there's always the guys like you that want to punish the non-believers? It's not enough to be potentially proven correct, your anger requires the demise of the heretics. It was the same story for cryptocurrencies.
by KaiserPro | 2025-12-30 16:00:27+00:00
> online moderation in the UK.

I'm british, fuck that. Read it here:

https://www.oswaldmosley.com/britain-first-rally-1939/

Also I'd recomend reading it, rather than getting a summary. because you need to see the banality of what he's asking for, and how tame (sadly) it is compared to currently pricks like Jenrick and Farage are asking for now.

> Fascinating that Karp reportedly recited part of the speech to Mosley’s grandson

recited from memory Again, at best its deeply weird, ungenerously its a power play, at worst is someone who's fascinated by fascism.
by embedding-shape | 2025-12-30 16:00:43+00:00
Heh, I too remember the stress and rush of burning car-listening CDs right before long car trips, trying to set the write speed to slower and slower after each failed attempt, and finally succeeding burning it, only to find out that the car didn't actually have any CD reader at all, and could only do cassette. Waiting for DC++, Kazaa or LimeWire to finish a download only to find out that of course, it's some Britney song instead.

Simpler times for sure, unsure if it was actually better or not though, we certainly aren't as young as we used to be :)
by dylan604 | 2025-12-30 16:01:05+00:00
Ugh, mono. Phasing is an effect that is used quite a bit, and when things are 180° out of phase and mixed to mono, oops, no more audio. Of course, my favorite use of 180° phasing was Dolby ProLogic to send that to the mono rear speakers. It was always fun listening to music that was not mixed for ProLogic but used 180° phasing as an effect in ProLogic decoding enabled. Random things would play from the rear speakers.
by alexfoo | 2025-12-30 16:01:35+00:00
Anyone visiting the South West of the UK should go visit https://en.wikipedia.org/wiki/PK_Porthcurno (https://pkporthcurno.com/)

(There's also the https://en.wikipedia.org/wiki/Minack_Theatre built into the cliff face nearby.)

(I've been to the theatre a number of times but never convinced my in-laws to visit the Telegraph Museum.)
by mahirsaid | 2025-12-30 16:02:13+00:00
True I would also add that this an exception to most social media platforms. I feel as there is a roundtable Everytime somone posts a something. I'm some how invited and listening, whether I comment or say something is entirely up to what I have to share. Argument or debate isnt so aggressiveas it's factual based for the most part.
by tolerance | 2025-12-30 16:02:13+00:00
This was a carousel of a read. The title reads almost paradoxical. The last two paragraphs almost assured me that this was going to end on a note that I'd find to be in conformity to my impression of the city.

Then this:

> It used to bother me. The delivery guy and I both expend the same raw 'effort' in a day, and that's probably being generous to me. The difference is that society has decided that my 'effort' is more lucrative. Then I realized that me being bothered by it is not helping anyone. I've started to take these opportunities to feel grateful to Lady Luck for giving me good parents, raising me in a good part of the world, and introducing me to a trade at an early age which pays good money. Now I try to pay this gratitude forward in the form of tips and other acts of kindness while reminding myself that nature is inherently random.

No, no no! “Lady Luck” is a pin-up girl. Be bothered. You can tip the delivery guy and still be bothered. Not by the fact that your job earns you more money than his (which I find not to be suited according to indeterminate circumstance—but that’s another discussion), but be bothered because...perhaps your contentment is subsidized by another's frustration...and there are fewer places than ever to escape this if you want to earn a living that you believe is suited to your skillset, with all the amenities that it affords.

There may not be any escape from this except to...paradoxically?...earn and spend your wealth in such a way that divests you of your pleasure and privilege and invites or evokes parity with the delivery man in such a way that bridges the economic gap between you and him through a new more intimate struggle!
by friendzis | 2025-12-30 16:02:21+00:00
> Do you disagree that some critics of AA are committing that fallacy?

This is is such a weird non-argument dressed as some gotcha. "Some critics of x are committing y fallacy" is probably universally correct statement. It is so devoid of any meaning that this particular type of discourse has not only a name, but a mascot too.
by diziet | 2025-12-30 16:02:29+00:00
Cool! Ideas: At least do an ensemble approach by queuering llms to explain what the symbols "are". It's so auto generated now. Link to wikipedia. https://en.wikipedia.org/wiki/Approximation#Typography

Developers need to understand context too, not see a static page of "macOS: Use Character Viewer (Control + Command + Space) and search by name, or copy/paste."

The related to symbols make little sense. For example: https://fontgenerator.design/symbol/acute-angle
Does not link to all other "angle" pages, but does to Aktieselskab?
by bgro | 2025-12-30 16:02:51+00:00
Remember when people wrote things online because they had something useful to say and share and that was enough?

Now it’s slop factory of people having a writing quota to get enough ads because they don’t want to work. Particularly true for tech writers who praise things like leetcode then can’t get a real job.

Now it’s supercharged by ai and they’re upset how accessible their slop job is. I just find that funny I suppose.
by swinglock | 2025-12-30 16:02:53+00:00
assert() is always only compiled if NDEBUG is not defined. I hope DEBUGASSERT is just that too because it really sounds like it, even more so than assert does.

But regardless of whether the assert is compiled or not, its presence strongly signals that "in a C program strcpy should only be used when we have full control of both" is true for this new function as well.
Show HN: Recallify – clinician-led AI app for memory and executive function
by sarah_rudebeck | 2025-12-30 16:03:07+00:00
Hi HN — we built Recallify, a mobile app designed to support people who
experience memory, fatigue, and executive-function challenges.

It’s clinician-led and co-designed with people with neurological conditions
and neurodivergence (e.g. brain injury, ADHD), based on real-world cognitive
rehabilitation principles.

Recallify focuses on:
• Quick capture (voice or text) when energy is low
• Gentle structure for tasks, routines, and memory
• Reducing cognitive load rather than adding complexity

We’re especially interested in feedback from anyone working in health,
accessibility, or building tools for cognitive support.
Happy to answer questions.
by ArcHound | 2025-12-30 16:03:15+00:00
Hello HN!

Here's my writeup for the years 2025, 2020 and 2015 of the Advent of Code. I am also slowly building a toolset and libraries in python to tackle these problems effectively.

I also have all of the solutions and the library available at GitHub: https://github.com/ArcHound/advent_of_code

Hope you'll have a great start of 2026!
by Loughla | 2025-12-30 16:03:18+00:00
You're just patently wrong on your first point. Schools and educators do not want to have to teach every life skill imaginable. They are trained in content areas, like science, math, and literacy. The extra stuff has historically been forced on schools by parents via elected officials and state/federal mandates. Also, unfunded mandates are wildly popular in education legislation. More requirements doesn't necessarily mean more money. And finally, are you claiming that educators want more money for schools specifically so they can steal (cut you skim) the extra funds? That is just absurd and completely asinine.

I'm also not sure what your second point has to do with anything. Could you please explain what that means?
by ragnese | 2025-12-30 16:03:59+00:00
I haven't written any Go in many years (way before generics), but I'm shocked that something so implicit and magical is now valid Go syntax.

I didn't look up this syntax or its rules, so I'm just reading the code totally naively. Am I to understand that the `user` variable in the final return statement is not really being treated as a value, but as a reference? Because the second part of the return (json.NewDecoder(resp.Body).Decode(&user)) sure looks like it's going to change the value of `user`. My brain wants to think it's "too late" to set `user` to anything by then, because the value was already read out (because I'm assuming the tuple is being constructed by evaluating its arguments left-to-right, like I thought Go's spec enforced for function arg evaluation). I would think that the returned value would be: `(nil, return-value-of-Decode-call)`.

I'm obviously wrong, of course, but whereas I always found Go code to at least be fairly simple--albeit tedious--to read, I find this to be very unintuitive and fairly "magical" for Go's typical design sensibilities.

No real point, here. Just felt so surprised that I couldn't resist saying so...
by BirAdam | 2025-12-30 16:04:11+00:00
Completely anecdotal, but…

I spend quite a bit of time reading and writing tech history. I am not academic in this pursuit. I read old newspapers, magazines, websites, books, and interviews. Take some notes along the way, and then write an article. Usually, each article is a short history of a company that made significant contributions to the industry. For companies that still exist today, the end of these are articles are significantly more difficult to write (I usually write entirely in chronological order). Original sources are impossible to find, many news stories simply no longer exist, and I often find that I can only really rely on the company’s own quarterly or annual reports. This has only become worse over the few years I’ve been engaged in this hobby.

As my publication has grown, I’ve had the privilege of communicating directly with people present at the companies I cover, and this has been valuable. The problem is, many of these people are elderly and they won’t be around forever. For example, I wrote about PARC but was too late to interview Lynn Conway whose work is partially responsible for the entire world of processors we enjoy today.

Efforts like the archive and GOG are absolutely essential to the preservation of our history. I hope they manage to continue.
by dundarious | 2025-12-30 16:04:36+00:00
Yes, these were also common in several wire formats I had to use for market data/entry.

You would think char symbol[20] would be inefficient for such performance sensitive software, but for the vast majority of exchanges, their technical competencies were not there to properly replace these readable symbol/IDs with a compact/opaque integer ID like a u32. Several exchanges tried and they had numerous issues with IDs not being "properly" unique across symbol types, or time (intra-day or shortly before the open restarts were a common nightmare), etc. A char symbol[20] and strncpy was a dream by comparison.
by Twey | 2025-12-30 16:04:50+00:00
I'd be interested to hear how they reconcile ‘100% code coverage’ with ‘QA needs to run fast’ on a large codebase.

I'd also really love to see a study around how much of the effort it takes, on average, to write (by carefully shepherding an agent or otherwise) bullet-proof tests and other guardrails for the LLM-generated code divided by the effort of writing the code by hand.
by koakuma-chan | 2025-12-30 16:04:57+00:00
It doesn't really matter how "skilled" the designer is. Figma's MCP already provides HTML and CSS that's basically ready, and all AI needs to do is translate that into React or whatever. Or if you mean that AI wouldn't be able to make a proper interface without the human, that's also not true. The only reason I use Figma MCP is that my company uses Figma and has a dedicated Figma person. My opinion is that is just a bottleneck, and it would be easier to prompt AI to make whatever interface.
by foltik | 2025-12-30 16:05:08+00:00
From the LLVM docs [0]:

> Undef values aren't exactly constants ... they can appear to have different bit patterns at each use.

My claim is simple and narrow: compilers should internally model such values as unspecified, not actively choose convenient constants.

The comment I replied to cited an example where an undef is constant folded into the value required for a conditional to be true. Can you point to any case where that produces a real optimization benefit, as opposed to being a degenerate interaction between UB and value propagation passes?

And to be explicit: “if you don’t like it, don’t use it” is just refusing to engage, not a constructive response to this critique. These semantics aren't set in stone.

[0] https://llvm.org/doxygen/classllvm_1_1UndefValue.html#detail...
by hypeatei | 2025-12-30 16:05:31+00:00
One of the theories is that Shah waited until his co-pilot went to the bathroom, refused to unlock the door from there, and then de-pressurized the cabin so that they all died which left him as the only person alive on-board.

I'm sure there has been a lot of thought put into this locking mechanism so that hijackers can't access the cockpit, but how about the rogue pilot scenario like this one? IIRC, pilots outside can enter a code to unlock the door but it can be rejected by the person inside (so it really only applies if they're incapacitated)

EDIT: it appears some airlines mandate at least two people in the cockpit at all times after the 2015 Germanwings incident.
by kevin_thibedeau | 2025-12-30 16:05:48+00:00
pip and venv. The Python ecosystem has taken a huge step backwards with the preachy attitude that you have to do everything in a venv. Not when I want to have installable utility scripts usable from all my shells at any time or location.

I get that installing to the site-packages is a security vulnerability. Installing to my home directory is not, so why can't that be the happy path by default? Debian used to make this easy with the dist-packages split leaving site-packages as a safe sandbox but they caved.
by Mixtape | 2025-12-30 16:06:30+00:00
Just a nitpick: analog NTSC was roughly 480i at (just under) 30 FPS. The latter is significant, as 3:2 pulldown (as would have been necessary if the station's cameras were scanning at 24 FPS) would have introduced judder and made tracking even harder. To its credit, interlacing also improved motion clarity at the expense of loss of detail, but whether that's a net benefit ultimately amounts to a matter of preference.
by MarkLowenstein | 2025-12-30 16:06:46+00:00
It's unbelievable that we try so hard to solve this problem even after CRTs are extinct. Every LCD-type screen is easily made to refresh at any rate below its max. If we can't show a 24fps movie at 24fps on our TVs (or smoothly smoothed at 48fps)...what are we doing as a society? It's not like people think TV is an unimportant corner of their lives.
by kortilla | 2025-12-30 16:06:56+00:00
> I guess what matters is the launch price?

It’s a commercial launch company. Of course the price matters and it being so much cheaper than the trash from ULA, Russia, etc is why there has been an explosion in new space endeavors (see the bandwagon launches).

> Nothing special about them. NASA could have made their own but someone decided it needs to be outsourced.

“Anyone could have done it bro,” is such an ignorant response. Nobody did it and there was the entire launch industry to collect if they did.

Even if NASA could have, they were derelict of duty in enabling space utilization because they never did it.

> And I heard they got billions in subsidies but have nothing to show for it.

Should probably check stuff before you repeat it. SpaceX has not received billions in subsidies for going to the moon. It did win a contract to do it, which as the name implies has required deliverables.
by theshrike79 | 2025-12-30 16:07:20+00:00
That's why you dont use LLMs as a knowledge source without giving them tools.

"Agents use tools in a loop to achieve a goal."

If you don't give any tools, you get hallucinations and half-truths.

But you give one a tool to do, say, web searches and it's going to be a lot smarter. That's where 90% of the innovation with "AI" today is coming from. The raw models aren't gettin that much smarter anymore, but the scaffolding and frameworks around them are.

Tools are the main reason Claude Code is as good as it is compared to the competition.
Show HN: Obelisk – Open-source, self-hosted password manager
by chrisiisx | 2025-12-30 16:07:21+00:00
I'm starting development on Obelisk, an open-source password manager designed to be fully self-hosted with a single docker-compose up. The goal is to create a zero-knowledge system where teams and freelancers can share credentials securely without depending on external services like Firebase or managed databases.
Frontend: React/TypeSharp + Vite (web-first, Electron optional later)

Backend: Node.js/Express

Database: PostgreSQL (self-hosted in the same stack)

Auth: Custom JWT-based (no external auth providers)

Deployment: Docker Compose for a one-command setup

Key differentiator from Bitwarden/1Password: Complete infrastructure independence. Users host everything—no calls to external APIs, no locked-in encryption schemes.

I'm at the early stage (basic auth and UI skeleton working) and would love feedback from the HN community:

Is the "fully self-contained" approach a compelling reason to choose this over established options?

What are the biggest pitfalls in building a secure password manager you've seen?

Any interest in collaborating? The stack is modern but straightforward.

The project is not ready for production, but the code is public for contributions.
by Loughla | 2025-12-30 16:07:47+00:00
I didn't realize that morality and philosophy had concrete black and white answers, and that adding your own thoughts to the discussion regarding those things was discouraged.

I'm not trying to be a shit, but your post comes across as either very gatekeeping or just snotty for no good reason. Do you have arguments to support what you're saying other than a hand-waving dismissal of the site?
by isodev | 2025-12-30 16:07:50+00:00
> Do people actually believe that there are too many keywords?

Yes they do. Just imagine seeing the following in a single file/function: Sendable, @unchecked Sendable, @Sendable, sending, and nonsending, @conccurent, async, @escaping, weak, Task, MainActor.

For comparison, Rust has 59 keywords in total. Swift has 203 (?!), Elixir has 15, Go has 25, Python has 38.

> You can still used gcd.

Not if you want to use anything of concurrency, because they're not made to work together.