MurphyA/hacker-news huggingface dataset:
by bonesss | 2025-12-29 19:31:10+00:00
In reflection heavy environments and with injection and reflection heavy frameworks the distinction is a bit more obvious and relevant (.Net, Java). In some cases the mock configuration blossoms to essentially parallel implementations, leading to the brittleness discussed earlier in the thread.

Technically creating a shim or stub object is mocking, but “faking” isn’t using a mocking framework to track incoming calls or internal behaviours. Done properly, IMO, you’re using inheritance and the opportunity through the TDD process to polish & refine the inheritance story and internal interface of key subsystems. Much like TDD helps design interfaces by giving you earlier external interface consumers, you also get early inheritors if you are, say, creating test services with fixed output.

In ideal implementations those stub or “fake” services answer the “given…” part of user stories leaving minimalistic focused tests. Delivering hardcoded dictionaries of test data built with appropriate helpers is minimal and easy to keep up to date, without undue extra work, and doing that kind of stub work often identifies early re-use needs/benefits in the code-base. The exact features needed to evolve the system as unexpected change requests roll in are there already, as QA/end-users are the systems second rodeo, not first.

The mocking antipatterns cluster around ORM misuse and tend to leak implementation details (leading to those brittle tests), and is often co-morbid with anemic domains and other cargo cult cruft. Needing intense mocking utility and frameworks on a system you own is a smell.

For corner cases and exhaustiveness I prefer to be able to do meaningful integration tests in memory as far as possible too (in conjunction with more comprehensive tests). Faster feedback means faster work.
by zaphar | 2025-12-29 19:31:35+00:00
Sure, if you don't model the error domain correctly you will leak stuff that maybe you shouldn't leak. But I'm not sure that this is worse than just not exposing the types of errors that you are handling.

Your example is interesting actually because there are real differences in those types of errors. IO errors are different from the globset errors. It is reasonable to assume that you would want to handle them differently. If your function can actually have both errors as a consumer I would want to know that so I can make the correct decisions in context. If you don't have a way to signal to my code that both happen you've deprived me of the tools to do my own proper error modeling and handling.
by encyclopedism | 2025-12-29 19:32:00+00:00
As I've commented already...

The core issue is that AI is taking away, or will take away, or threatens to take away, experiences and activities that humans would WANT to do. Things that give them meaning and many of these are tied to earning money and producing value for doing just that thing. Software/coding is once of these activities. One can do coding for fun but doing the same coding where it provides value to others/society and financial upkeep for you and your family is far more meaningful.

If that is what you've been doing, a love for coding, I can well empathise how the world is changing underneath your feet.
by gothink | 2025-12-29 19:32:41+00:00
Looks like this is available (since Go 1.21 [0]), so no need to build from source anymore. Just did a quick 'hello world' test to verify and it worked:

GOOS=wasip1 GOARCH=wasm go build -o main.wasm main.go
wasmtime main.wasm

If you're interested in wasm/wasi and niche hardware with Go, you should check out TinyGo [1] if you haven't already.

[0] https://go.dev/blog/wasi

[1] https://tinygo.org/docs/guides/webassembly/wasi/
by uecker | 2025-12-29 19:32:42+00:00
I agree that compilers were too aggressive in exploiting UB, but this is not the topic of this thread which has nothing to do with UB. But also the situation with UB is in practice not too bad. While compilers broke some old code which caused frustration, when writing new code most UB can easily be dealt with in practice by following some basic ground rules (e.g. no unsafe casts, being careful with pointer arithmetic) and by activating some compiler flags. It is not anything that should cause much trouble when programming in C.
by phito | 2025-12-29 19:33:21+00:00
I really doesn't. I just ditched my wordpress/woocommerce webshop for a custom one that I made in 3 days with Claude, in C# blazor. It is better in every single way than my old webshop, and I have control over every aspect of it. It's totally production ready.

The code is as good or even better than I would have written. I gave Claude the right guidelines and made sure it stayed in line. There are a bunch of playwright tests ensuring things don't break over time, and proving that things actually work.

I didn't have to mess with any of the HTML/css which is usually what makes me give up my personal projects. The result is really, really good, and I say that as someone who's been passionate about programming for about 15 years.

3 days for a complete webshop with Stripe integration, shipping labels and tracking automation, SMTP emails, admin dashboard, invoicing, CI/CD, and all the custom features that I used to dream of.

Sure it's not a crazy innovative projet, but it brings me a ton of value and liberates me from these overengineered, "generic" bulky CMS. I don't have to pay $50 for a stupid plugin (that wouldn't really fit my needs anyway) anymore.

The future is both really exciting and scary.
by theturtletalks | 2025-12-29 19:33:24+00:00
I’ve been following this space and a lot of good apps:

Conductor

Chorus

Vibetunnel

VibeKanban

Mux

Happy

AutoClaude

ClaudeSquad

All of these allow you to work on multiple terminals at once. Some support work trees and others don’t. Some work on your phone and others are desktop only.

Superset seems like a great addition!
Show HN: I made a Macrodata Refinement simulator for bank transactions
by dimos851 | 2025-12-29 19:33:35+00:00
I built a Lumon Terminal into my personal finance app. It's an incredibly inefficient way of categorizing expenses, but the more I use it, the better I recognize my own spending. I'm now looking at 12.49s and instantly know it's Netflix → Subscriptions

The URL is a demo that won't make lots of sense since it's not your own numbers/transactions, but you can import your own for free and try it out!
by 6r17 | 2025-12-29 19:33:40+00:00
I was about to write something really emotional and clearly lacking any kind of self reflect ; then I read you again ; and I admit there is a lot of part of this that is true.

I feel like it may be something inherently wrong in the interface more than the actual expression of the tool. I'm pretty sure we are in some painful era where LLM, quiet frankly, help a tons with an absurd amount of stuff, underlying tons and "stuff" because it really is about "everything".

But it also generate a lot of frustrations ; I'm not convinced of the conversational status-quo for example ; and I could easily see something inspired directly from what you said about drawing ; there is something here about the experience - and it's really difficult to work on because it's inherently personal and may require to actually spend time, accumulate frustration to finally be able to express it through something else.

Ok time to work lmao
by pembrook | 2025-12-29 19:34:04+00:00
Hrmmm, German supports using the monopoly on violence given to the state to make raids on people who make undesirable social media posts.

There’s only one problem. Whos to say you won’t be the next target if the political climate shifts to cracking down on pro-censorship voices like yourself?

Will you think its still a good use of your tax money when the opposition is putting you in a police car for this exact HN comment?
by forrestthewoods | 2025-12-29 19:34:14+00:00
Yeah I agree. This is a classic “uninitialized variable has garbage memory value” bug. But it is not a “undefined nasal demons behavior” bug.

That said, we all learn this one! I spent like two weeks debugging a super rare desync bug in a multiplayer game with a P2P lockstep synchronous architecture.

Suffice to say I am now a zealot about providing default values all the time. Thankfully it’s a lot easier since C++11 came out and lets you define default values at the declaration site!
by csa | 2025-12-29 19:34:30+00:00
> Aside from all that, there are other American car manufacturers with great EVs: Mustang Mach-E, Chevy Equinox/Bolt/Blazer, etc.

Teslas aren’t perfect, and they are definitely starting to get a bit dated, but the list you made has precisely zero “great EVs” imho.
by dundarious | 2025-12-29 19:35:13+00:00
Heroic works perfectly, in a manner identical to Lutris (from a user perspective). I tested both several years ago and have been a happy Heroic user since.

However, neither support 2 key features of GOG Galaxy:

1. cloud saves

2. achievements

These are 2 of the most significant features of competitors like Steam, IMO, so missing them for GOG on Linux is unfortunate.
by cortesoft | 2025-12-29 19:35:13+00:00
I have been programming for over 30 years now, and I have been re-energized by using LLMs for programming. I am having SO MUCH FUN building things with AI.

For me, the fun part of programming is having the freedom to get my computer to do whatever I want. If I can't find a tool to do something, I can write it myself! That has been a magical feeling since I first discovered it all those years ago.

LLMs gives me the ability to do even more things I want, faster. I can conceptualize what I want to create, I can specify the details as much as I want, and then use an LLM to make it happen.

It is truly magical. I feel like I am programming in Star Trek, with the computer as an ally instead of as the a receptacle for my code.
by AnimalMuppet | 2025-12-29 19:35:17+00:00
Well, at the moment, AIs don't get to vote. So step 1 is, don't vote them into office (or even into the franchise).

That is, AIs don't get to govern things without being put into governmental power by humans. Don't let the humans be the voters.

That doesn't stop office holders from using them like a magic 8-ball. So step 2 is, vote out office holders that let AIs write laws (or even replies to constituents).
by itsthecourier | 2025-12-29 19:35:41+00:00
it's fun to become a necromancer

I have become a general and a master of multitude of skeleton agents. my attention to the realm of managing effectively the unreproducible result of running the same incantations.

As the sailor through the waters of the coastline he have roamed plenty of times, the currents are there, yet the waves are new everyday.

Whatever limitation is removed, I should approach the market and test my creations swiftly and enrich myself, before the first legion of lich kings appear. they, better masters than I would ever be.
by positron26 | 2025-12-29 19:35:53+00:00
In the broad strokes, the inaccuracy is to suggest that nobody besides the FSF and RMS were converging to many of the same conclusions at the same time. The FSF did a good job of tying their ideas to a ratchet (GPL and copyright assignment) that would continue to pull in influence. That influence and recognition did not bring any benefit to open source (one of their childish "can't words"). Instead, it merely brought donations into the FSF and starved oxygen from a generation of others.
by aeonik | 2025-12-29 19:36:10+00:00
They are completely different synths.

Vital is a wave table synth; Helm is a subtractive synth.

Helm was the first synthesizer that I really excelled with. I would recommend anyone who wants to actually learn the fundamentals of synthesis, to start on it. Once you get good at to it, it's faster to dial in the exact sound you want than to reach for a preset.

It's far more straightforward and less complicated than additive (ZynAddSubFX), FM, or wave table synths.

That being said, if you just want a very advanced synth with a lot of great presets, Vital is far more advanced.
by didibus | 2025-12-29 19:36:15+00:00
It's an interesting case study, and I'm glad it worked for them. But I feel there would have been many other ways to solve the problem.

In fact, one thing I'm confused about, and that's not very clear to me, it sounds like prior to this new system, each food bank would just receive a random selection of foods of a given weight. But with the new system, they can choose exactly what foods they want to receive.

If so, this is a huge difference that has nothing to do with the bidding. A lot of the inefficiencies were probably due to this alone. You'd be getting things you don't need and not those you do and it created waste.

Now food banks could pick and choose what they needed.

This even justifies the introduction of bidding. Because once you have a proper catalogue and food banks can choose what they want, you have the problem of what if they all want the same limited quantity items?

You can make it first come first served. Now food banks would compete on being the quickest to enter their order. Or you can do other things, they went with bidding.

From that angle, bidding actually can look a lot fairer and "socialist" than "first come first served".
by macinjosh | 2025-12-29 19:36:22+00:00
I see post after post like this on different parts of the web. What is always clear to me is these authors feel threatened, put too much of their personal identity and self-esteem into knowing the "secret tongue" of the machines. Generally are introverted and write software for themselves and people like them, not for normal folks.

People like this have a great deal to personally lose from LLMs. It makes them substantially less "special". Or so they think, but it is actually not true at all.

I think some of them resent having to level up again to stay relevant. Like when video games add more levels to a game you though you already beat. Fair enough, but such is life and natural competition.

When they come at LLMs with this attitude (gritting their teeth while prompting) it is no wonder they are grossly offended and disgusted by its outputs.

I've been tempted at times to hold these attitudes myself but my approach for now is to see how much I can learn about this tool and use it for as much as I can while tokens are subsidized. Either it all pops with the bubble or I have gained new, marketable skills. And no your hand coding skills don't just evaporate. In fact, I now I have a new found love of hand coding as a hobby since that part of my brain is no longer used up by the end of the day with coding tasks for Work.
by beezlebroxxxxxx | 2025-12-29 19:36:23+00:00
Decision making is really important for people that can play golf well. I've played with a buddy a couple times and every time it's eye opening to see how he is practically playing a different game than me. I'm just trying to get the ball in the hole, get par if I'm lucky. On the other hand, he knows, most of the time, that he can get par quite easily. Instead, the game becomes about positioning, club selection, and approach; if I'm being honest, though, those concepts aren't even part of my game. I'm just trying to finish, to play the course, while he's trying to beat the course.
by btreecat | 2025-12-29 19:37:15+00:00
> I'm not sure I understand the issue.
>
> Wouldn't the pattern be to use a reverse proxy for ingress and everything goes through there into the backends? Keep the pod ips range that is not directly reachable from outside the cluster?

If all connections were inbound that would work fine. I'm trying to control traffic flowing in and out.
by nikeee | 2025-12-29 19:37:58+00:00
Keep in mind that a train in Germany counts as one-time if it is less than 6 minutes late. In Switzerland, it's 3 minutes.

Also in Germany, a train that did not even arrive does not count as too late.

There is also a concept of the "Pofalla-Wende", which is when a train is so late that it just does a 180 and drives back, to mitigate that the delay doesn't carry over to the train's next route. Of course, that means that it skips the stations at the end of the route.
by ffsm8 | 2025-12-29 19:38:07+00:00
have you actually done some projects with e.g. claude code?
completely greenfield entirely up to yourself?

because ime, youre completely wrong.

I mean i get were youre coming from if you imagine it like the literal vibe coding how this started, but thats just a party trick and falls off quickly as the project gets more complex.

to be clear, simple features in an existing project can often be done simply - with a single prompt making changes across mutliple files - but that only works under _some circumstances_ and bigger features / more indepth architecture is still necessary to get the project to work according to your ideas

And that part needs you to tell the llm how it should do it - because otherwise youre rolling the dice wherever its gonna be a clusterfuck after the next 5 changes
by georgehotz | 2025-12-29 19:38:28+00:00
That's comma.ai's policy since they make hardware and solve physical problems. The tiny corp has been hybrid (remote-first) since day 1 because it primarily writes open source software, and there's a long track record of success with remote for this kind of task.

We have a few whole-team meetups in Hong Kong each year for 2-4 weeks, and there's a San Diego or Hong Kong office that anyone can work from as they choose. We also have a wide array of fancy multi GPU boxes that everyone on the team gets full access to (known external contributors can get some access also).

I think many companies that were quick to embrace remote have walked it back, not everyone is capable of working productively remotely, nor are all types of work amenable to remote.
by paxys | 2025-12-29 19:38:32+00:00
Big difference between the two.

A company can own lots of things (assets, IP, real estate, share of other companies), but shareholders of the company don't own or have direct access to that thing. If Intel pays dividends, it will go to Nvidia, not you. If Intel holds a shareholder vote, Nvidia leadership will be the one voting, and they don't have to listen to your opinion. They can also change or sell the holding without your permission.

If you own shares of Intel through a Vanguard fund, you do have actual ownership of Intel. You can cast a vote same as every other shareholder. The dividend they issue will be passed on to you. Vanguard is simply acting as a proxy.
by agentastic | 2025-12-29 19:38:42+00:00
My issue with most of them is the xterm.js, which can't handle when the terminals get large/too big, Even Conductor (great app, i love conductor and the team behind it) had to drop their "big-terminal" mode. i'm hacking a native solution for this which i personally like by hacking Ghostty+SwiftTerm.
by chrisfosterelli | 2025-12-29 19:39:03+00:00
I was recently talking to a colleague I went to school with and they said the same thing, but for a different reason. We both did grad studies with a focus on ML, and at the time ML as a field seemed to be moving so fast. There was a lot of excitement around AI again finally after the 'AI winter'. It was easy to participate in bringing something new to the field, and there was so many unique and interesting models coming about every day. There was genuine discussion about a viable path to AGI.

Now, basically every new "AI" feature feels like a hack on top of yet another LLM. And sure the LLMs seem to keep getting marginally better, but the only people with the resources to actually work on new ones anymore are large corporate labs that hide their results behind corporate facades and give us mere mortals an API at best. The days of coding a unique ML algorithm for a domain specific problem are pretty much gone -- the only thing people pay attention to is shoving your domain specific problem into an LLM-shaped box. Even the original "AI godfathers" seem mostly disinterested in LLMs these days, and most people in ML seem dubious that simply scaling up LLMs more and more will be a likely path to AGI.

It seems like there's more excitement around AI for the average person, which is probably a good thing I suppose, but for a lot of people that were into the field they're not really that fun anymore.

In terms of programming, I think they can be pretty fun for side projects. The sort of thing you wouldn't have had time to do otherwise. For the sort of thing you know you need to do anyway and need to do well, I notice that senior engineers spend more time babysitting them than benefitting from them. LLMs are good at the mechanics of code and struggle with the architecture / design / big picture. Seniors don't really think much about the mechanics of code, it's almost second nature, so they don't seem to benefit as much there. Juniors seem to get a lot more benefit because the mechanics of the code can be a struggle for them.
by colanderman | 2025-12-29 19:39:40+00:00
I am pretty sure (though have not vetted) that triangulation of LoRa is possible even at very low SNR.

The trick is understanding LoRa's trick, which is simply to "skew" the signal across time (via chirps), modulo a window of the configured bandwidth around the center frequency. The key is that the skew rate is purely a function of the spreading factor, bandwidth, and IQ polarity (= pol × BW² / 2^SF), so there's a small-ish finite number of skew rates. So you can just modulate raw IQ data with carriers at each of these skew rates to find one which gives you a bunch of carrier waves that hop around discretely at about twice the symbol rate, looking like an FSK signal. You can then bin this at a factor of, say 2^(SF-2) to correlate the signal and raise it up above the noise floor, on which you can apply any standard triangulation technique.

I'll try vetting this soon and reply to this post with results.
by ianburrell | 2025-12-29 19:39:52+00:00
LE Audio should fix the quality and latency problems. The latency is significantly lower and the bandwidth is twice Classic Bluetooth. There are new default codecs that are better, and there should be enough bandwidth for lossless. The other nice thing is enough bandwidth for bidirectional streams instead of low quality audio when use microphone.

The current problem is that LE Audio implementations are new with lots of headphones having them as beta.
by btreecat | 2025-12-29 19:39:54+00:00
The solution proposed was to adopt a plan from some other centralized committee.

The committee being common to both solutions likely wasn't the problem given the increased success of the second solution. It was the ability to take into account the difference in resource need and utility. That could have been done by the first group, and would have likely produced a better result.

Central planning doesn't require you to ignore the needs of the people you're planning for.
by delecti | 2025-12-29 19:40:41+00:00
Lets not distort the past. The ads were introduced a few years later with the Kindle Keyboard, which launched with an MSRP of $140 for the base model, or $115 with ads. That was a substantial discount on a product which was already cheap when it released.

All for ads which are only visible when you aren't using the device anyway. Don't like them? Then buy other devices, pay to have them removed, get a cover to hide them, or just store it with the screen facing down when you aren't using it.
by walletdrainer | 2025-12-29 19:40:43+00:00
I’m fabulously wealthy and still mostly pirate things just because I can’t be bothered dealing with online credit card payments.

Half the time I try to sign up for any of these services I get blocked for fraud because I’m in one country, my billing address in another and my bank in a third. Oh, and when something does work, it only works for a while until they lock the whole account with a bunch of paid content on it.
by avipeltz | 2025-12-29 19:40:54+00:00
We do plan to ship Windows (and Linux) builds, Electron makes that feasible, but for the first few releases we focused on macOS so we could keep the surface area small and make sure the core experience was solid since none of us are using Windows or Linux machines to properly test the app in those environments.

But it on the roadmap and glad to know theres interest there :)