MurphyA/hacker-news huggingface dataset:
by RossBencina | 2025-08-04 06:02:05+00:00
I've seen this debate play out before. Often the type theory people and the domain modeling people end up talking past each other.

I think type-theoretic safety is a completely different thing to the use of types (and names) in software-as-domain-modeling (for example, but not necessarily OO modelling). At different times, for different people, one perspective is more important than the other. It is important not to confuse the perspectives, and to value both of them, but also to recognise their strengths and weaknesses.

One theme that sometimes emerges is that the type theory people don't care about names at all. Not even field names. Taken to the extreme Customer( name: str; age: int) is just a Tuple[str, int]. The words "Customer", "name", "age" have no place in the code base.

My take is that when you are dealing with computer-scientific abstract things, e.g. a List of T, then there is no need to reference the domain entities; placeholder names like T, x, xs make sense. On the other hand, if you're writing an application that models domain semantics (eg. business rules), writing software amounts to modelling the domain, it should be easy to correlate software entities with the real-world entities that they model. To do this we use descriptive words, including names, domain events, activities and so on. e.g. List[Customer] not List[Tuple[str, int]]. Then again, you could replace all of the type names with A, B, C, ... and all the variable names with w, x, y, .... The example would end up as X[Y[Z,W]], the software would work exactly the same, and you might get some insights into the structure of the system. However, if you're in the business of building a user management system in general this is not going to fly for very long with your workmates or your client. You will have trouble onboarding new developers.
by Bella11 | 2025-08-04 06:02:45+00:00
MailerLite | https://www.mailerlite.com | √ remote | √ full-time | √ people-focused perks & benefits

MailerLite makes email marketing LITE. Fast, simple, and beautifully designed tools.

_____________________________________________

Hiring: Web Designer

Apply here: https://www.mailerlite.com/jobs/web-designer

_____________________________________________

Hiring: Web Developer

Apply here: https://www.mailerlite.com/jobs/web-developer

_____________________________________________
by SlowTao | 2025-08-04 06:03:23+00:00
I do like how things like CAPS would have been insanely difficult to do at that time simply due to the hardware limitations, not even going into the horrors of software on that era. And yet a decade or so later you could do similar stuff on the desktop.

For instance by 98/99 Futurama was doing this using SGI systems (I think?). Still hand drawn cels but entirely digitally coloured and composited.
by hibikir | 2025-08-04 06:03:47+00:00
It's not just filing the X-rays. Back in the day, for a big crown you got yourself a full mouth cast, ship it away, and eventually you got a crown which hopefully fit. Today you get a much less invasive scan before the root canal. one after, and the 3d printer in the back creates a crown that fits. Much faster, cheaper and typically even more accurate.
by csa | 2025-08-04 06:04:54+00:00
> Find me one serious person who has ever argued for equality of outcomes.

Without commenting on or evaluating the merits or demerits of the argument, here is a representative example:

https://onlinepublichealth.gwu.edu/resources/equity-vs-equal...

“Equality means each individual or group of people is given the same resources or opportunities. Equity recognizes that each person has different circumstances and allocates the exact resources and opportunities needed to reach an equal outcome.”

This was a widely held stance in certain circles. Additional examples in different domains/disciplines are not difficult to find.
by ashton314 | 2025-08-04 06:05:47+00:00
There 100% are unit systems implemented with types. (One example: https://github.com/goldfirere/units/tree/master/units)

Structural types does not preclude having some names that prevent mix-ups. Haskell’s `data` keyword doesn’t let you confuse structurally-identical things.

> If someone encodes "RGBColor" and "LinearRGBColor", both structs with 3 floats, your type system wouldn't provide any errors if a LinearRGB color is passed into an RGB calculation.

It 100% would, unless you were silly enough to use a bare tuple to do it. Again, defining a type with `data` in Haskell wouldn’t get confused.
by locallost | 2025-08-04 06:06:13+00:00
From the pension system which is separate from taxation. De jure the current pensioners paid into the system for decades and now get paid back. De facto they get funded by contributions of the currently employed, but they don't swallow up any tax money or hold anyone hostage because if the current system was scrapped there would not be more tax money available for other things (e.g. public transport). The money is collected by a dedicated agency and does not flow through the government.

The current system is hated by people who've been farmongered into thinking there won't be any pensions when it's their turn (this tactic has been around for at least 50 years and hasn't happened yet). And also successfully FOMOed into thinking they are missing out on huge gainz if they would invest the money otherwise. Even though probably true, I quite like the current system of solidarity. And anyway when you go the private insurance route, the way it's setup currently, you are giving away a huge percentage of your earnings to the insurance. They justify this by saying your gainz are only taxed at 50% of their actual value, but since one of the biggest problems of the world today is an overgrown financial strength (thus influence) of large corporations, caveat emptor.
by pragmatick | 2025-08-04 06:07:56+00:00
They're not strictly taxes but they kinda are. They're mandatory and paid by workers into a fund but are linked to your future pensions. Like taxes they're automatically deducted from your salary and legally required but earmarked as to be used in the future.

Which has worked well for quite some time but I don't believe I'll every see any of the money I'm currently paying into the system.
by RossBencina | 2025-08-04 06:07:58+00:00
Depending on the language, you can define a PasswordString type that is entirely distinct from the string type. Perhaps it can be explicitly converted to a string (perhaps given a capability token). Then you have:

a { user_pw: PasswordString}

This is what it means to model the domain using types. It is not a separate layer, it is actually using the type system to model domain entities.
by a96 | 2025-08-04 06:08:12+00:00
Python is pretty old, so I had a quick look.

https://en.wikipedia.org/wiki/C%2B%2B#History

In 1985, the first edition of The C++ Programming Language was released, which became the definitive reference for the language, as there was not yet an official standard.[31] The first commercial implementation of C++ was released in October of the same year.[28]

In 1998, C++98 was released, standardizing the language, and a minor update (C++03) was released in 2003.

https://en.wikipedia.org/wiki/History_of_Python

The programming language Python was conceived in the late 1980s,[1] and its implementation was started in December 1989[2] by Guido van Rossum at CWI in the Netherlands as a successor to ABC capable of exception handling and interfacing with the Amoeba operating system.[3]

Python reached version 1.0 in January 1994.

Of course it's hard to say how much that is reflected in code available and is any of the old code still valid input for modern use. It does broadly look like c++ is older, in general.
by ninetyninenine | 2025-08-04 06:09:49+00:00
Bro.

https://www.aei.org/carpe-diem/the-sp-500-index-out-performe...

You'd be a fucking idiot if you bet on zero or negative growth for the SP500 in the next decade. The market is utterly the perfect example of a predictable trendline. The key is that you need to look at it over the long term.

Warren buffet called out every idiot investor because they all did short term bets based on short term gains and he said the way forward was long term investments. Now tell me. What does the long term trendline for the past decade say about machine learning? What does the short term LLM "training wall" say about it? Are you an idiot investor or are you not? Most investors are idiots.
by SlowTao | 2025-08-04 06:10:00+00:00
It is a good start of an idea but it kind of feels like it is just a search engine but you need to use more words to get the same result.

The real magic could be once the various elements start interacting with each other. In having to use natural language questioning, the reward from the effort needs to reflect this. Just asking for a cat picture is nice, but if it is context aware of your previous questions like "Use that picture of the cat in a document about cat care and change it to reflect the context of the document", then it could be something really cool.
by pjmlp | 2025-08-04 06:11:05+00:00
Not silly at all, if it can't be enforced in a standard portable way, its place doesn't belong in the standard, at all.

I would have voted SA on this matter, if I had a life that would allow me to go around voting at WG21 meetings.

We have vcpkg and conan now, the standard library cannot be a distribution vehicle for organisations that refuse to adopt C++ package managers.
by onoesworkacct | 2025-08-04 06:11:12+00:00
There are a couple of SaaS products in Australia that do examination transcription.

I know of one practice that went all-in on the stuff. They had to re-hire their secretaries after their AI transcription recorded "this bone normal, no damage to this other area" but totally failed to mention that the first part of the sentence was "distal fracture to whatever", ultimately failing at it's most basic bloody function.

I'm pretty sure the founders are not doctors but tech industry types, who figured that there was some non-zero error rate and just like, collectively shrugged at the consequences.
by SatvikBeri | 2025-08-04 06:11:54+00:00
I've been in companies that do this. I like it more than alternatives.

The default for most meetings everywhere I've seen is to present information during the meeting, verbally or in powerpoint. For example, standups often devolve to people sharing their updates. This is much worse than having people write down updates and taking a few minutes to read them at the beginning.

Also note that these documents usually take about 5 minutes to read, even for slow readers. Meetings with much longer documents are pretty rare in my experience - feedback on long documents is usually done separately.

It would theoretically be better for people to read the documents ahead of time. But the benefit is pretty small IMO, and the cost is large – it fails if even a single person hasn't read the document.
by andrewrn | 2025-08-04 06:12:55+00:00
Thanks for trying it and sorry about those errors. All fixed now.

You're very much not alone on the UX friction-- that's what most people have said. My gut says that what is fun about Fermi estimation is chaining the factors, (which OP's clone doesn't have), but it's not a trivial thing to package into an intuitive UI. So I'll have to think about it a bit more. If you've got any more ideas or suggestions, I'm all ears!
by positron26 | 2025-08-04 06:13:01+00:00
> What does lab-grown meat have to do with software

Part of my values for open technology, open things in general, is how it accelerates innovation. Software is not always and end. It is a means. When "free" software demands we die on a hill for a cold shower in the dark, as they did during the Web 2.0 era, they are chasing some abstract good while creating real harm.
by petesergeant | 2025-08-04 06:13:07+00:00
> instead of just using the "quality implementation" to actually get structured data out?

I suggest spending a few minutes using a PDF editor program with some real-world PDFs, or even just copying and pasting text from a range of different PDFs. These files are made up of cute-tricks and hacks that whatever produced them used to make something that visually works. The high-quality implementations just put the pixels where they're told to. The underlying "structured data" is a lie.

EDIT: I see from further down the thread that your experience of PDFs comes from programmatically generated invoice templates, which may explain why you think this way.
by jdiff | 2025-08-04 06:13:41+00:00
If AI could really accelerate or even take over the majority of work on an established codebase, we should be seeing a revolution in FOSS libraries and ecosystems. The gap has been noted many times, but so far all anyone's been able to dig up are one-off, laboriously-tended-to pull requests. No libraries or other projects with any actual downstream users.
by b_e_n_t_o_n | 2025-08-04 06:14:42+00:00
Preferred by me, I'm not trying to speak for anyone else. In fact I'd say it's a somewhat minority opinion.

When talking about types like `Meter` and `Yard` in a structural system, the "type" of the data is also data. In a nominal system that data is encoded in the type system, but that's not the only place it can be. For example, if I asked you how far the nearest gas station is, you wouldn't respond with "10", but rather "10 minutes", or "10 kilometres", etc. Both the value and unit of measurement are relevant data, and thus both of those would be part of the structural type as well.

{ unit: yard, value: 20 }

This is real, concrete data that you can see all at once. You can feed it into different functions, create aliases for it (unlike objects where you'd need to make snapshots or copies when they might change), compare it with other data to check equality, transmit it across networks, and work with it easily in other programming languages since they all understand basic types. When you stick with this kind of data, you can use general-purpose functions that work on any data rather than being locked into specific methods tied to particular types or interfaces - methods that won't exist when you move to different languages or systems.

In a nominal system you might end up with a generic Measurement<T> type that contains the unit inside, which can help with code reuse but it's not at the same level as pure data.
by crystal_revenge | 2025-08-04 06:15:23+00:00
Whenever I use Notion I can feel the PM working there being pushed to ship a new feature this quarter; you can almost hear the engineers asking “why are we building this?”

A few years back Notion was excellent modulo a few small UX things that could be improved.

Now those small things still haven’t been improved but there’s way more clutter worsening the UX notably over time.
by ninetyninenine | 2025-08-04 06:15:26+00:00
We can never know when an asymptote will occur or if we're in one. There's simply not enough information as noise often makes it look like we're on an asymptote when in reality we are not. Asymptotes only exist in hindsight. By probability almost all time on a curve is spent NOT approaching an asymptote. So the bet with the highest probability of being true is that we are not approaching one.

>but never gets serious traction at solving novel problems or working in the real world(outside its core skill set; generating text)

This isn't true. Transformers now power self driving. I already stopped using Uber in SF. All my taxi rides are driven by AI.
by pjmlp | 2025-08-04 06:16:07+00:00
Replace the Microsoft specific terms of those examples with,

- kexts

- Cocoa

- UIKit

- Carbon

- SwiftUI

- MSL

- XPC

- ARC

- plist

- CoreData

- CloudKit

- SpriteKit

- SceneKit

- RealityKit

Do you think anyone that never bothered with Apple's developer ecosystem has any clue of those names are for?

And that is a very small overview.
by scarface_74 | 2025-08-04 06:16:21+00:00
So they just give me a job as the leader, then other people want to follow. Is it them illegal for Google to offer other former coworkers a job? Isn’t that kind of like the “Prisoner’s Dilemma”?

So exactly how does a Google “monopoly” (which definitely doesn’t exist in AI if anywhere), harm customers? And would I as a potential employee better off or worse off?

Am I paying more for search today because of the monopoly? Am I paying more for any of the free stuff that Google has because of advertising (that I block anyway)?

In other words, you do want the government to force employees to stay at a company when they could get a better offer?

Isn’t that what we wanted to prevent with outlawing non competes?
by yurishimo | 2025-08-04 06:16:59+00:00
That's an interesting assertion you make there about opinionated frameworks. Do you have a source for that? From my perspective, opinionated frameworks have only gotten more popular. Rails might not be the darling of every startup in existence anymore but I think that's largely down to other languages coming in and adopting the best parts of Rails and crafting their own flavor that plays to the strengths of their favorite programming language. Django, Laravel, Spring Boot, Blazor, Phoenix, etc etc.

While a lot of people here on this platform like to tinker and are often jumping to a new thing, most of my colleagues have no such ideas of grandeur and just want something that works. Rails and it's acolytes work really well. I'm curious to know what popular frameworks you're referencing that don't fit into this Rails-like mold?
by misja111 | 2025-08-04 06:17:11+00:00
My experience with Python and Scala so far is different. With Python the LLM's do a pretty good job. The code always compiles, sometimes there are some logical or architectural errors but that's it.

With Scala, I have to give the LLM a super simple job, e.g. creating some mock data for a unit test, and even then it frequently screws up; every now and then it gives me code that doesn't even compile. So much for Scala's strong type system ..
by zdragnar | 2025-08-04 06:21:03+00:00
I do feel bad for junior developers. I'm at the point where I won't consider a job unless it came through my professional network. I did a bit of job hunting during some downtime after my last gig just to be diligent while my current was being lined up and it is utterly depressing. LinkedIn and co's "one click apply" has to be the worst thing to happen to the industry for remote workers.

Back in "my day" you'd tailor your resume to the company you applied to in an effort to highlight relevant experience, and that was a minimum- most also included a cover letter... Not fire off three dozen applications a day hoping to hear back from one after a month or three.

Got any extra room in your yurt?
by 71bw | 2025-08-04 06:21:42+00:00
I might not exactly be the benchmark for this but for the entirety of preschool and then the first 4 years of primary school I went in for a week and took 2 weeks of what I would now call sick leave. Left me with a heart disease and a real scare for what I should do if I ever have kids to avoid this happening to them.
by int_19h | 2025-08-04 06:21:58+00:00
Because Bun is still far less mature (and the stack on which it builds is even less so - Zig isn't even 1.0).

Because its Node.js compat isn't perfect, and so if you're running on Node in prod for whatever reason (e.g. because it's an Electron app), you might want to use the same thing in dev to avoid "why doesn't it work??" head scratches.

Because Bun doesn't have as good IDE integration as Node does.
by solatic | 2025-08-04 06:21:58+00:00
It's not so much typing that is valuable for vibecoding, but being able to give the agent hooks into tooling that provides negative feedback for errors. The easiest is typing, sure, because it's built into the compiler. But you can also add in static analysis linters and automated testing, including - notably - testing for performance.

Of course, you have to tell the agent to set up static analysis linters first, and tell the agent to write tests. But then it'll obey them.

The reason why large enterprises could hire armies of juniors in the past, safely, was because they set up all manner of guardrails that juniors could bounce off of. Why would you "hire" a "junior" agent without the same guardrails in place?
Show HN: Superfire – Create and share AI agent demos powered by your MCP
by gur_ronen | 2025-08-04 06:23:06+00:00
I built Superfire to solve a problem I kept running into: wanting to quickly demo AI capabilities without setting up custom infrastructure every time.

- Connect your MCP servers to create interactive AI agent demos - Generate shareable links with password protection - Usage controls (message limits, tool call limits) to prevent runaway costs - Support for multiple transport types: STDIO, HTTP, and SSE

Demoing MCP Servers usually requires custom deployment, Docker containers, or asking people to run things locally. Superfire eliminates that.

Use cases I'm seeing: - AI/ML engineers showcasing MCP server implementations - Product teams demoing AI features to stakeholders - DevRel folks creating interactive demos for conferences - Companies showing AI solutions to clients without technical setup

The platform is live at superfire.me and I'm using it myself to demo various MCP integrations. Would love feedback from the HN community – especially if you're working with MCP servers or need to demo AI capabilities regularly.
by prasoon2211 | 2025-08-04 06:24:08+00:00
I worked at a company where we copied this from Amazon for a specific type of meeting (bi-weekly review). But we also had the other "normal" type of meeting.

People never read the documents before the meeting in those "normal" meetings.

The challenge with your suggestion is that people will half-ass the doc reading before the meeting - we tried doing this for the "normal" meetings. It was obvious the people skimmed the doc before the meeting. You're also now relying on the manager (if there even IS one for everyone in the meeting!) to care about this.

So, in practice, giving people dedicated 10 minutes at the start of the meeting works far better.

Besides, in most "normal" meetings, the main presenter often ends up discussing background / context for 10 minutes interspersed throughout the meeting anyway. In the "pre-read" meetings, you're just compress that to the first 10 minutes while increasing the amount of information transferred.
by so-cal-schemer | 2025-08-04 06:24:19+00:00
I can see how 6.001 was a bit like jumping into the deep end to learn to swim.

Starting from, "To design a register machine, we must design its data paths (registers and operations) and the controller that sequences these operations." In less than 5,000 words it proceeds to implementing recursive procedure calls in what amounts to assembly:

(controller (assign continue (label fact-done)) ; set up final return address fact-loop (test (op =) (reg n) (const 1)) (branch (label base-case)) (save continue) ; Set up for the recursive call (save n) ; by saving n and continue. (assign n (op -) (reg n) (const 1)) ; Set up continue so that the (assign continue (label after-fact)) ; computation will continue (goto (label fact-loop)) ; at after-fact when the after-fact ; subroutine returns. (restore n) (restore continue) (assign val (op *) (reg n) (reg val)) ; val now contains n(n - 1)! (goto (reg continue)) ; return to caller base-case (assign val (const 1)) ; base case: 1! = 1 (goto (reg continue)) ; return to caller fact-done)

A translation of:

(define (factorial n) (if (= n 1) 1 (* (factorial (- n 1)) n)))

It's quite a jump in knowledge, but explained very clearly through a series of guided examples. It's close to equivalent code in x86 or arm, but much easier to read.