MurphyA/hacker-news huggingface dataset:
by milesvp | 2025-07-22 18:09:04+00:00
>5 people over a span of 6 months

As a very seasoned developer, I have seen lots of projects built by a single person in a short time that “would normally” be built with more people over a longer period of time. What is invariably missing from these projects are the very things that the 5 people would have added. The main thing that is usually missing is robustness. These single dev projects will usually fall over hard when they stray from the happy path (why would anyone enter a value other than a small digit for this input???).

Data integrity is often ignored as well, both internal to the application and how the data flows through the rest of the systems and the org as a whole.

Security is generally an afterthought as well.

And then, there’s sort of the elephant in the room, which is part of why these projects take a long time, is that they need to be defined and refined in the first place. It is not uncommon to find some edge case that requires a lot of effort to decide how best to handle it, and it’s often the product owner who needs to decide tradeoffs for thw product.

Incidently many of these reasons are why offshoring also fails.

So, where does that leave things? AI will undoubtedly allow a team of 9 to do what a team of 10 did 2 years ago (maybe even 3 of 5). AI also will potentially help with each of the things I’ve mentioned as well, I’ve had good luck with AI helping with missing test coverage. I’ve also had a lot of luck with AI helping where I have gaps in my knowledge about things. So I expect the quality of software will get much better too.

I will say, right now there is a big shake up of the industry. I expect short term prospects to be bad in the same way the offshoring frenzy of the early 2000s. What you are going to find, is that long term demand for technical talent will only go up. In the same way that efficiency in anything tends to increase demand, things get cheaper and people find more uses for said thing.

Another thing to think about; I sort of saw the writing on the wall 6 years ago. I continually saw the barrier to entry fall in software. So I changed my niche and moved closer to the hardware, where fewer people seemed to be entering. I will tell you that the places LLMs struggle with the most are the places others haven’t spent much time documenting. In the domain I currently work, it is impossible to use any code auto generation, there are too many places it transposes things or makes up api calls. But the code it generates can be very useful when the documentation is ambiguous and some obscure forums post likely has an answer the LLM can draw from. So it is possible to stay ahead of AI by moving to the fringes.
by pmoot | 2025-07-22 18:09:23+00:00
We use historical purchase data, as well as view history, traffic source, device type, etc.

Traffic source a lot of times is the most impactful. People coming from ads are often more in a browsing mindset, vs. people typing in the url directly have a higher purchase intent.

We don't have abandoned cart rate as a feature in our model, but actually might be something worth looking into adding.
by dvt | 2025-07-22 18:11:13+00:00
Is it just me, or have a lot of modern startups lost the plot? Imagine doing all this work for an element of your app which has nothing to do with its feature set. No one cares (certainly no customer) about an audio visualizer bar animation.

The post is also riddled with all kinds of misunderstandings, as well. For example, the authoritative language used to describe the differences between layout/painting/compositing is just simply untrue generally speaking (though it might be w.r.t. Electron/Chromium). The W3C does not care how you implement your rendering engine, and even bringing up the spec betrays a misunderstanding of how these things work.

In typical fashion, we see yet another grandiose blog post about fixing a "perf issue" for your hipster new startup that is essentially notepad.exe. Who funds this shit?
by mfrye0 | 2025-07-22 18:12:09+00:00
Very cool. I read through those links - really sophisticated setup. We're experimenting with something similar on the embeddings side.

Having dealt with this challenge at my last 3 companies, it's easy to hack together something that works most of the time. The hard part is dealing with gnarly customer inputs, the long tail of private businesses globally, and getting close to 100% accuracy (important for legal and risk use cases).

We're building what's essentially an AI-powered version of D&B - combining government registrar data globally with real-time web data at scale. Much more accurate on obscure entities and way faster updates than the legacy providers.

I actually shot you an email - would love to chat more about this if you're up for it.
by baby_souffle | 2025-07-22 18:12:40+00:00
All of the cheap camera based two-dimensional barcode modules that I see on AliExpress tend to ship with a white LED as well as a red LED. The white LED is for general flood illumination and the red LED has some sort of pattern and lens array that keeps it centered in the cameras field of view and appears sharp and focused when the barcode is at the optimal distance.

Camera detects motion, turns white LED and red LED on. Paper or screen with the QR code is now illuminated and humans can move up and down until the red Target appears in the center and in focus. Approximately a quarter of a second after that happens, you hear the beep noise indicating a successful read and decode
by benreesman | 2025-07-22 18:12:51+00:00
It's not though, as you can see from building two of the most notoriously nasty libraries on God's earth, emitting reasonable `pkg-config` is trivial, it's string concatenation.

The problem is misaligned incentives: CMake is bad, but it was sort of in the right place at the right time and became a semi-standard, and it's not in the interests of people who work in the CMake ecosystem to emit correct standard artifact manifests.

Dynamic linking by default is bad, but the gravy train on that runs from Docker to AWS to insecure-by-design TLS libraries.

The fix is for a few people who care more about good computing than money or fame to do simple shit like I'm doing above and make it available. CMake will be very useful in destroying CMake: it already encodes the same information that correct `pkg-config` needs.
by Kon5ole | 2025-07-22 18:13:18+00:00
I guess you mean me, and I can't give a definite answer of course, it's complicated. I can mention some things I think should be considered.

- Solar is bad in Finland during the winter, but good during the summer. Whatever other fuel is used during the summer now can instead be offset to winter. Even natural gas, but preferably imported wind, hydro and such.

- Solar was not an option when Finland decided to build o3. They couldn't have chosen solar instead, back then.

- Finland is a net exporter of electricity, and is in fact exporting a similar amount as o3 produces manually. So basically Finland didn't really need o3 for themselves, they built it to sell electricity.

- When other countries add lots of cheap solar, it will be difficult to sell nuclear since it's much more expensive.

- If the price forces o3 to close ahead of time, Finland still has to pay for it, and its waste, for decades if not centuries.
by pmoot | 2025-07-22 18:13:29+00:00
Yes. We're going through Shopify, so merchants agree to terms when they install the app.

There's user activity data, but also contextual data and shop data that we use. 'Contextual' data refers to things like device type, traffic source, time of day, day of week (there have been some interesting trends with corporate vs. non-corporate customers in this one).

Shop data includes things like product profit margin and product conversion rate. Obviously we can go deeper with our discounts on products that are very profitable, and it's typically more efficient to give a discount on products with lower conversion. Merchants also like boosting items that haven't been selling well.
by andygocke | 2025-07-22 18:13:30+00:00
Unfortunately, there are alternatives to this behavior, but they all have other downsides. The biggest constraint was the schedule didn't support a new version of the .NET IL format (and reving the IL format is an expensive change for compat purposes, as well). There were two strong lowering contenders, with their own problems.

The first is to use a `With` method and rely on "optional" parameters in some sense. When you write `with { x = 3 }` you're basically writing a `.With(x: 3)` call, and `With` presumably calls the constructor with the appropriate values. The problem here is that optional parameters are also kind of fake. The .NET IL format doesn't have a notion of optional parameters -- the C# compiler just fills in the parameters when lowering the call. So that means that adding a new field to a record would require adding a new parameter. But adding a new parameter means that you've broken binary backwards compatibility. One of the goals of records was to make these kinds of "simple" data updates possible, instead of the current situation with classes where they can be very challenging.

The second option is a `With` method for every field. A single `with { }` call turns into N `WithX(3).WithY(5)` for each field being set. The problem with that is that it is a lot of dead assignments that need to be unwound by the JIT. We didn't see that happening reliably, which was pretty concerning because it would also result in a lot of allocation garbage.

So basically, this was a narrow decision that fit into the space we had. If I had the chance, I would completely rework dotnet/C# initialization for a reboot of the language.

One thing I proposed, but was not accepted, was to make records much more simple across the board. By forbidding a lot of the complex constructs, the footguns are also avoided. But that was seen as too limiting. Reading between the lines, I bet Jon wouldn’t have liked this either, as some of the fancy things he’s doing may not have been possible.
by ashafq | 2025-07-22 18:13:47+00:00
I did try the internal temperature sensor, but it didn't measure the ambient temperature. I have read that if you set the ATtiny85 to sleep mode for some time, it will converge to ambient temperature, but it would take too long to validate, and I didn't want to go down another rabbit hole.

USB Bootloader is interesting, but I already had a few ISP loaders. You can make an ISP loader with Arduino as well. [1]

[1] https://docs.arduino.cc/built-in-examples/arduino-isp/Arduin...
by kennywinker | 2025-07-22 18:14:07+00:00
taqiyya is a new word to me. I can’t help but feel it’s being used as a bit of a slur here - not sure, but just in case i’ll point out that there are examples of basically every religious group hiding their faith when threatened. Jews during the holocaust and in inquisition spain, and catholics in elizabethan england, are historic examples i’m familiar with.
by jasonthorsness | 2025-07-22 18:14:10+00:00
Now I’m paranoid that my comments sound like an LLM. I write all my own comments without LLM “assistance”. I actually am somewhat anti-AI in that regard so this comment chain is causing me some anxiety :p

Also I use do use unlurker probably mostly as a stubborn insistence on using something I spent a lot of time on and to try to be more active, but ironically I just saw this article on the front page of the real site not on unlurker. I mostly develop in golang so found it pretty interesting albeit a bit extreme.
by bityard | 2025-07-22 18:14:28+00:00
I had a nice little chuckle when reading the intro paragraph:

> As software developers, we always strive for better tools but rarely consider a font as such.

We must travel in different circles, it feels to me like half the developers on HN, blogs, and social media are WAY more concerned with the aesthetic of their development environment than actually getting any real work done with it!
by fluidcruft | 2025-07-22 18:14:48+00:00
I agree and for me it ties into the general theory that our brains are narrative engines. The big processes running in our brains are building narratives for sorting fantasy from fiction in history building and prediction for planning and narrative is a major tool. Language has evolved a significant role in transferring narrative between individuals and generations. Immersion matters from that perspective and diaries and narratives are more relatable and effective and useful for feeding that beast.

It's not particularly helpful when your in a more purely fact recall mode, though.
by tiffanyh | 2025-07-22 18:15:10+00:00
This is a complex topic.

For example, if you grew up in an English-speaking country, your computer likely defaulted to Arial or Helvetica as its sans-serif font. Over time, your brain became familiar with how words looked in those typefaces—their proportions and shapes.

Because fonts like Inter and SF share similar proportions, your brain finds them easier to process, which makes them feel more readable.
by mindslight | 2025-07-22 18:15:44+00:00
It's both less expensive to run and engages users to waste their time better so they don't seek out any remaining avenues.

I recently had a package misdelivered by SpeedX. "Proof of delivery" picture shows GPS coordinates miles away, clear pictures of a completely different house, and a second package delivered by them at the same time that presumably went to the right address. Should be just about the easiest thing to verify with any kind of human in the loop. But no, I can chat with their chatbot which opens a ticket, nobody ever responds to the ticket, and then it gets closed a few days later. I tried this a few times, asking for updates on the ticket, etc. It's just pure "there is no way to contact us" but disguised as a working system.
by exiguus | 2025-07-22 18:16:26+00:00
The hole point of having a Component-Library is to reuse Components. And a component is markup, style and functionality. Not only the CSS. E.g. you want to use the same Button-Component all over the place in your project and not re-declare <button class="btn btn-secondary">text</button> again and again in your project. If you think about more complex Component like a sort able table, it becomes more obvious.
by mola | 2025-07-22 18:17:11+00:00
So you want Israel to cease to exist? Germany did the Holocaust, nobody said Germany can't exist. Russia attacks Ukraine in an emperialistic power move, no one suggest Russia shouldn't exist.

But Israel is a "project" that needs to end. More like a scape goat.

I'm israeli. This war is bad, my government is evil. But I deserve to have a nation to call home, so do the Palestinians.

If you disagree with me, think about it a bit and what it says about you.
by sjducb | 2025-07-22 18:17:16+00:00
VS Code and local Python virtual environments.

Packages managed with pip and versions pinned with pipcompile. One ML production environment forces us to use conda we inherit from the pip environment and try to have as much done by pip as possible.

Formatted with black and flake8

Unit tests with unittest

Azure Dev Ops for running tests, security screening, and CI

The happy path for deployment is build docker images in AzureDevOps unfortunately we can’t do that for good reasons

I’m not a fan of typed Python, it doesn’t work as smoothly as you expect if you’re coming from a statically typed language.

Be careful enforcing pylint quality. It can be a great way to kill your teams velocity.

I’m describing a boring stack that works. All of these tools are 5+ years old and very well supported.
by funerr | 2025-07-22 18:17:20+00:00
I needed a Python library to handle complex batch requests to LLMs (Anthropic & OpenAI) and couldn't find a good one - so I built one.

Batch requests take up to 24h but cut costs by ~50%. Features include structured outputs, automatic cost tracking, state resume after interruptions, and citation support (Anthropic only for now).

It's open-source, feedback/contributions welcome!

GitHub: https://github.com/agamm/batchata
Show HN: Homemade robot playing piano concert in SF (7/26)
by goawaygeek | 2025-07-22 18:17:20+00:00
Figured there are probably some folks on here that might be interested in coming to a robot piano concert at Gray Area in SF this Saturday night (7/26). More comprehensive technical write up to come (eventually) but the show is by LA composer Deru (https://deru.la) and features 3 robot/player pianos that sit over the top of traditional upright pianos and are controlled live over USB MIDI by way of an ESP32-S3.

The story of how it all came about is kinda long but Ben (Deru) recorded an album (We Will Live On: https://deru.bandcamp.com/album/we-will-live-on), during covid on a Yamaha Disklavier (the album will be performed as part of the concert). To try and work out how we could actually tour the album we found a community of homebrew player piano folks that started with Brandon Switzer's work (https://github.com/bbswitzer/pianoproject) which led to a Discord group (https://discord.gg/vE9uPg2y) and then to Josh Phillips's work evolving it into an over the top player (https://github.com/japhillips87/player_piano).

We followed Josh's PCB designs (with some modifications due to component availability) upgraded the chip driving them to be an ESP32-S3 dev board so we could turn it into a USB MIDI peripheral, and went about building more pianos (so we could do the concert with three pianos).

Here's some pretty average footage of the rehearsal we did last week where we got the first one working nicely and then all three working together driven over some USB extenders.

1 piano 'tuned': https://youtu.be/tD1tcXoxsiw 3 pianos working together for the first time: https://youtube.com/shorts/gr1l6a6vt28

The concert will have three pianos, two guitar amps and a couple of metal resonators all performing in the round and should sound wonderful. Please come along or ask any questions below to me. All going well there will be a larger tour to follow.
by suprtx | 2025-07-22 18:17:55+00:00
I forgot to mention that even Haskell has had some strangeness in its pattern matching once, that it banned later, as recently as 2010.

https://stackoverflow.com/questions/3748592/what-are-nk-patt...

> What do they mean by "n+k patterns"? I guess it's the second line, but I don't get what might be wrong with it. Could anyone explain what is the issue there? Why aren't these n + k patterns allowed any more in Haskell 2010?
by roguecoder | 2025-07-22 18:18:03+00:00
Web technologies succeed when they let people not have to understand things. React is the same as tailwind: it captures the box model experts already used to reason about web pages and made it literal.

As long as the job of "web developer" is about assembly-line delivery of features, it will continue to be strategic to choose tools that are worse for experts and better for amateurs.
by splintercell | 2025-07-22 18:18:25+00:00
Just to let you know, an argument can be made that this was exactly the intent.

All stable democracies derive a goodwill by honoring certain values even if a previous political party made them.

This is intentionally being thrown out of the window for what the other side perceives to be something done to them (arresting Trump, assassination attempts). Which the first side can justify on the grounds of what was done to them (Jan 6th), which is the other side can justify on the grounds of what was done to them (2020 election issues) and so on.

Any attempts to look for the "source" of the problem (i.e figuring out who started it) is choosing a side and not trying to solve the problem.
by joules77 | 2025-07-22 18:19:15+00:00
In the seminaries of the world they don't teach how to make up clever stories to entrap people. For that you go to Marketing, PR or Sales school. And ofcourse the people who come out of these schools think they are very clever because they sold some widgets or politicians to the masses by some deadline.

But have you heard of a sales org or a marketing dept that has been running for thousand years? They barely ever survive few decades as a coherent unit if ever.

For the curious go check what the neighborhood seminary teaches.

The Church (and all other religious systems) haven't stood for thousands of year through the fall of empires, nations, civil wars, revolutions, plagues, famines, collapse of economic systems, internal schisms, enlightenment, progress in science/tech etc because of the stories they tell.

In fact the stories have been rewritten, branched, mutated, merged with other stories thousands of times to the point we have thousands of different versions of these stories. There is no "narrative domination".

The Church has survived because when people Suffer due to the fall of empire/nations/banks/economies, war, plagues, famine, disasters etc where else do people go?

Do they all head to house of the local system analyst/graph theorist?
by cryzinger | 2025-07-22 18:19:28+00:00
I also found the writing style grating, but not for a lack of efficiency; it just felt kind of empty and fake-deep. (Definitely also wondered whether an LLM editor or co-author was part of the equation.)

For contrast, I recently saw this blog post off an HN submission and loved it. Very un-efficient but engaging and full of character.

https://www.funraniumlabs.com/2024/04/choose-your-own-radiat...
by naniwaduni | 2025-07-22 18:19:40+00:00
Not really? The US does its diplomacy substantially by shuffling money around. Writing a conditional into law is how a legislative body expresses a formal commitment. That's business as usual.

The continued existence of these particular laws in 2011 was, in any case, more a convenient excuse to do something they didn't not want to do anyway, than something that couldn't be changed if political will went the other way. It's just a bit stronger of a commitment than the sitting president's whim, which is also a thing that happens.

Perhaps the disconnect is that the US actively engages in foreign policy at all?
by mfrye0 | 2025-07-22 18:19:48+00:00
Yes, none of the top LLMs can do entity resolution well yet. I constantly see them conflate entities with similar names - they'll confidently cite 3 sources about what appears to be one company, but the sources are actually about 3 different businesses with similar names.

The fundamental issue is that LLMs don't have a concept of canonical entity identity. They pattern match on text similarity rather than understanding that "Apple Inc" and "Apple Records" are completely different entities. It gets even worse when you realize companies can legally have identical names in the same country - text matching becomes completely unreliable.

Without proper entity grounding, any business logic built on top becomes unreliable.
by ArtificialAI | 2025-07-22 18:19:54+00:00
Calling it anti-competitive ignores the reality: Apple built and maintains the entire iOS ecosystem (hardware, software, security, developer tools, everything). The new EU-compliant model does allow sideloading and external payments, but with reasonable fees to help support that infrastructure. That’s not abuse; it’s Apple defending the integrity of its platform while still giving developers and users more choice. No one is forced to use iOS, but if you do, it’s fair that Apple sets the terms for its own system.