MurphyA/hacker-news huggingface dataset:
by CharlieDigital | 2025-07-26 12:36:15+00:00
I think this depends in principle on what you're building. Take an API, for example.

The thesis is simple:

1) A DTO is a projection or a view of a given entity. 2) The "domain entity" itself is a projection of the actual storage in a database table. 3) At different layers (vertical separation), the representation of this conceptual entity changes 4) In different entry/exit points (horizontal separation), the projection of the entity may also change.

In some cases, the domain entity can be used in different modules/routes and are projected to the API with different shapes -- less properties, more properties, transformed properties, etc.

Typically, when code has a very well-defined domain layer and separation of the DTO and storage representation, the code has a very predictable quality because if you are working with a `User` domain entity, it behaves consistently across all of your code and in different modules. Sometimes, a developer intermixes a database `User` or a DTO `User` and all of a sudden, the code behaves unpredictably; you suddenly have to be cognizant if the `user` instance you're handling is a `DBUser`, a `UserDTO`, or the domain entity. It has extra properties, missing properties, missing functions, can't be passed into some methods, etc.

Does this matter? I think it depends on 1) the size of the team, 2) how much re-use of the modules is needed, 3) the nature of the service. For a small team, it's overkill. For a module that will be reused by many teams, it has long term dividends. For a one-off, lightweight service, it probably doesn't matter. But for sure, for some core behaviors, having a delineated domain model really makes life easy when working with multiple teams reusing a module.

I find that the code I've worked with over the years that I like has this quality. So if I'm responsible for writing some very core service or shared module, I will take the extra effort to separate my models -- even if there's more duplication required on my behalf because it makes the code more predictable to use if everything inside of the service expects to have only one specific shape and set of behaviors and project shapes outwards as needed for the use case (DTO and storage).
by ajb | 2025-07-26 12:37:08+00:00
You're right, that was the hole here. The reply by Tuna-Fish gives the correct reason for this setup (different voltages). The actual power converter usually needs at least an off-chip capacitor, even if the logic is integrated, because that's too large to be cost-efficient in silicon; so there might be an opening even if as much as possible was integrated - haven't thought that through though.
by gitremote | 2025-07-26 12:37:11+00:00
I don't care about the company and I'm not defending it. I don't have sympathy for the bad faith gossipers getting doxxed. But there are going to be legitimate users who gravitated towards the app for the real safety need. Doxxing this kind of user base means real women are going to get killed by their obsessive stalkers.

It was a choice to exfiltrate this data and distribute it on 4chan.
by leoff | 2025-07-26 12:37:21+00:00
>The less your core logic depends on specific tools or libraries, the easier it becomes to maintain, test, or even replace parts of your system without causing everything to break.

It seems like the author doesn't like depending on `pydantic`, simply because it's a third party dependency. To solve this they introduce another, but more obscure, third party dependency called `dacite`, that converts `pydantic` to `dataclasses`.

It's more likely that `dacite` is going to break your application, than `pydantic`, a library used by millions of users in huge projects, ever will. Not to mention the complexity overhead introduced by this non sense mapping.
by RickJWagner | 2025-07-26 12:38:05+00:00
I retired this year, but I had a 35 year career in tech with a business degree.

I started working for a banking software company that had a college grad intake program. Their theory was that great programmers have characteristics that are often found in disciplines like business, music, philosophy, etc. They’d teach new hires COBOL in an OJT setting.

It worked out very well. I feel very lucky to have had this path.
by Voultapher | 2025-07-26 12:38:06+00:00
Let's count abstraction layers:

1. Domain specific Rust code

2. Backend abstracting over the cust, ash and wgpu crates

3. wgpu and co. abstracting over platforms, drivers and APIs

4. Vulkan, OpenGL, DX12 and Metal abstracting over platforms and drivers

5. Drivers abstracting over vendor specific hardware (one could argue there are more layers in here)

6. Hardware

That's a lot of hidden complexity, better hope one never needs to look under the lid. It's also questionable how well performance relevant platform specifics survive all these layers.
by rcxdude | 2025-07-26 12:38:14+00:00
A lot of strange behaviour on the stock market seems to more or less be "a large enough fraction of investors are bad at math". Crypto buying is one of them: buying and holding cryptocurrencies seems to drive up the market cap of a company by more than the cryptocurrencies they are buying (even if they issue more shares to pay for it), so why wouldn't any random company just take the free money?
by nicoburns | 2025-07-26 12:39:01+00:00
This is a bit pedantic. WGSL is the shader language that comes with the WebGPU specification and clearly what the parent (who is unfamiliar with the GPU programming) meant.

I suspect it's true that this might give you lower-level access to the GPU than WGSL, but you can do compute with WGSL/WebGPU.
by serbuvlad | 2025-07-26 12:39:36+00:00
> Self-hosting is a better alternative than corporate cloud providers, but isn’t suitable for the everyman due to its complexity and associated costs.

What costs? I run a self-hosted soultion for ~5 people off a $150 N100 machine + storage costs and currently my bottleneck is Jellyfin transcoding speed. I want to scale out with a couple more $150 N100/N150 machines to ~20 users: my entire extended family and friends.

As a point of comparison an iPhone 16 non-pro starts at $799.

That's the fixed costs, the running costs are extremely tiny. The N100 eats up electricity like an anorexic model chewing up red meat, the domain is $10/year and the dynamic DNS is ~$3/month (and I didn't even go for a particularly cheap one).
by widforss | 2025-07-26 12:39:38+00:00
By the discussions I've had with surveyors in my country (Sweden), any coordinate descriptions of properties are deferred to the physical markers in the ground (cairns for older property, metal stakes for newer ones). This would only be an issue in properties that have never been surveyed (and marked) at all.

Straight borders might become crooked if they cross the crack though.
by austin-cheney | 2025-07-26 12:39:38+00:00
This all sounds like bullshit posturing from politicians that got us into this mess.

The bottom line is that government income must increase and government spending must decrease. Income can come from taxation, competing with private enterprise, donations, or other channels. Decreased spending ultimately means doing less.

The only part of this that has become abundantly clear is that massively firing a bunch of people from government without a transition plan is incredibly expensive. If you want smaller government then expect government to do substantially less and the work force will decrease over time naturally. The small government political bullshit can seem to swallow that bitter pill.
by PaulHoule | 2025-07-26 12:39:45+00:00
It’s connected with the questions around occupational licensing of programmers, unions, and similar structures which would not be so much about getting paid more but about getting quality up, squashing bullshit, and getting our quality of life up.

Without a cohesive community, mutual respect, and recognition of a shared body of knowledge, we don’t have the solidarity to make it happen.

As for Laravel, I’d say people were making complex applications (Ebay, Amazon, Yahoo) in 1999 —- Google Maps were better than Mapquest, which drew each image with a cgi-bin, but many SPA applications are form handling applications that could have been implemented with the IBM 360 and 3270 terminal.

The OG web was missing a few things. Forms were usually written on one HTML page and received by a separate cgi-script. To redraw the form in case of errors you need one script that draws the form and draws the response and a router that choose which one to draw. You need two handfuls of helper functions, for instance

<? draw_select($options,$selected_options,$attributes) ?>

to make forms which can be populated based on what’s already in your database. People never wrote down “the 15 helper functions” because they were too busy writing frameworks like Laravel and Ruby-on-Rails that did 20x more than you really needed. So the knowledge to build the form applications we were building in 1999 is lost like the knowledge of how the pyramids were built.

As for performance, web sites today really are bloated, it’s not just the ads and trackers, it’s shocking how big the <head/> of documents get when you are including three copies of the metadata. If you are just drawing a form and nothing else, it’s amazing how fast you can redraw the whole page —- if you are able to delete the junk, old school apps can be as fast as desktop apps on the LAN and still be snappy over mobile.
by everyone | 2025-07-26 12:40:28+00:00
Asking as a software dev, is is better to have a website or an app?

I would just assume that a website is better for getting new users cus of the lower bar to entry, theres no install, a lot of peoples phones are full. Also you can go from QRcode or clicking 1 link directly to the app.

Whereas with an app, you have a link or QRcode that goes to the correct store, then install on the store, and then open.

I get that an app would be better for retention, as they could put the icon on their desktop (or whatever it's called) But I assume a site would be better for getting initial visitors cus of much lower barrier to entry.
by thunky | 2025-07-26 12:40:57+00:00
> its not looking back at what was just generated

It is, though. The LLM gets the full history in every prompt until you start a new session. That's why it gets slower as the conversation/context gets big.

The developer could choose to rewrite or edit the history before sending it back to the LLM but the user typically can't.

> There's no guarantee everything stays the same except the mistake

Sure, but there's no guarantee about anything it will generate. But that's a separate issue.
by martin-t | 2025-07-26 12:41:02+00:00
Both points are true. I chose these examples in response because they are relatively simple, clear cut examples of "not your business", yet people still try to dictate other people's lives around them.

These people are on one end of the authoritarian spectrum. The other are anarchists, usually ancaps in places I frequent, and they are just as wrong because they are ignoring how people in the real world will actually behave. Negative externalities are precisely the thing that they ignore, minimize, or try to redirect your attention by linking you to a 2 hour video which is supposed to address it but doesn't.

Well, at least they do generally get out of other people's lives though. But it's a system which doesn't work and when it fails, leads to the rise of authoritarians. I wish people were able to understand that policy is a multi-dimensional spectrum and extremes on any one axis are unlikely to lead to stability.
by doytch | 2025-07-26 12:41:11+00:00
You’re right - if you only used it for ‘font-heading-2’, you wouldn’t need it.

But like the person you’re responding to said, the ergonomics improve for the majority of cases that are just ‘flex items-center gap-2’.

And yes, you could write it all yourself but Tailwind is a good set of defaults for those classes and minimizes bike-shedding and improves consistency. These are useful things in lots of teams.

I don’t really use Tailwind on smaller personal projects because I love CSS, but in an org of mixed skill levels, it’s pretty damn useful.

(Also, Tailwind uses CSS variables. It had solid support for them in the last major and first class support for it in the current one.)
by jxntb73 | 2025-07-26 12:42:02+00:00
I'm still conflicted about this. I understand the cost and blood diamond debate and largely agree. But there is something about diamonds that makes them divine: carbon atoms crystallizing and bonding over millions to billions of years to form structures, rated on a scale of color, clarity, cut, and weight. It's like gold, primarily forged in cosmic events like supernova explosions. Naaaaah let's just make it in a lab it looks the same.

People are being priced out of art and beauty and it's a shame economics and corruption make real diamonds dirty.
by patrickhogan1 | 2025-07-26 12:42:24+00:00
Is having more tinkerers or Bill Nye's really a bad thing?

From what I’ve seen at maker and science fairs, these events often attract students who feel overlooked in schools that heavily prioritize sports. How many schools have pristine football fields, while the physics teacher is spending money out of their own pocket to build hands-on experiment kits, just to show students that physics is more than what’s in a textbook? (That was the case for my dad)

These fairs open kids eyes to a broader world. One that celebrates creativity, problem-solving, and scientific curiosity.

Not every student needs to become an engineer. What matters is that they feel hopeful about the future and engaged in something positive, instead of turning to drugs or escapism.
by yupyupyups | 2025-07-26 12:44:16+00:00
Maybe the fact that we have all these games running on Linux now, and as a result more gamers running Linux, developers will be more incentivized to consider native support for Linux too.

Regardless, "native" is not the end-goal here. Consider Wine/Proton as an implementation of Windows libraries on Linux. Even if all binaries are not ELF-binaries, it's still not emulation or anything like that. :)
by prepend | 2025-07-26 12:44:27+00:00
The main benefit I liked with apps was at least I only logged in once and then stayed logged in forever. I liked this with apps whose security I didn’t care about- lamp bulbs, Alexa, insurance benefits, etc.

But now I get prompted to log in again and so I’d rather not take up the space for the app on my phone.

Uber Eats is 500MB and should be a web site only app. Etc etc
by Capricorn2481 | 2025-07-26 12:45:05+00:00
> One thing I have observed is that in each silo, there are certain programmers who assume they are the only sane group in the industry. They aren't interested in what problems the other siloes are solving and they assume any solution "over there" they don't understand is bad / decadent / crazy

A lot of coders have realized there's social credit in trashing other programmers. I regularly see comments from people claiming to have a singular custodial spirit for their craft, unrivaled by their peers. There's obviously advantages to telling people that everyone else is holding it wrong.

Then their advice is

- Some niche trick that's completely irrelevant to most situations

- Something that sounds obvious and uncontroversial, but is so broad and vague that it's not even worth arguing about.

And I realize the irony of me making this comment. But I wish we'd get over this phase where everyone thinks they're an expert, and that every bad codebase or slow app was the result of someone who didn't care. I have yet to work with someone who didn't care about their code.
by reliabilityguy | 2025-07-26 12:45:11+00:00
Sure. But publishing this result with your experimental methodology may help others to refine the experiment and get a better answer.

It is absolutely shameful that negative results are almost never published. I sure that a lot of money and effort wasted by repeating the same dead-end experiments by many research groups just because there is no paper that said: “we tried it this way, it didn’t work”.
by Telemakhos | 2025-07-26 12:45:15+00:00
> It's kinda the job of the government to decide such things;

In some countries, maybe. In the US, there were concerted attempts (like the First Amendment to the Constitution) to prevent that from being the government's job, because of the fear that government would use that job to suppress dissent and coerce opinions.

If payment processors are picking up that job, and doing so in a coordinated manner that doesn't allow porn companies to simply say "use these payment rails to do business with us, not those ones," it is not unreasonable to suspect that they are doing so not for their own business interests but as a proxy for powers that the government is denied. Someone should be taking a long look at whether the US-based payment processors are becoming a tool of censorship and, if so, how that censorship is being coordinated. It's not like Visa and Mastercard come up with these things independently and on a whim.
by anilgulecha | 2025-07-26 12:45:32+00:00
This is the most common mistake engineers make. Code is not worth anything. Solving a user's problem, which they're willing to pay for (not just any problem), is what can be converted to wealth. The intersection of these 2 is very small, and very dense - since all engineers aim for it.

If you venture out of that region and try to discover and solve problems (and if needed use code/automation/tech), you have a surer chance of generating wealth.
by Barrin92 | 2025-07-26 12:47:23+00:00
the intertwining of entertainment or fun with learning is a problem because it teaches kids that if something isn't fun it isn't for them, the "infotainment science" genre that's very common these days I suspect is detrimental to people pursuing STEM the moment they encounter what those disciplines are like.

Neil Postman used to make this point about TV politics and children's TV. Because TV as a medium must be show business, people were taught that if it isn't show business it isn't politics. When kids got spelling lessons on Sesame Street they weren't taught to learn languages but learning how to watch TV.
by mananaysiempre | 2025-07-26 12:47:39+00:00
That feels both largely irrelevant and false? False, because there are plenty of large projects that do have a house style but don’t use a formatter at code submission to enforce it—even if you reject the Linux kernel as an atypical example, basically every piece of commercial software from 20 years ago also fits, simoly because both formatters and presubmit checks weren’t nearly as common, and there were some chonkers there (like, I don’t know, Windows XP). Irrelevant, because it’s perfectly possible for a formatter to follow this convention (gofmt does, for example).
by eastbound | 2025-07-26 12:48:03+00:00
> > It’s the tragedy of the commons.

> Public healthcare isn't a free for all, its regulated, actively managed and budgeted.

Not what I mean. It’s racist. Public jobs are being reassigned in a racist way to help whoever the currently-elected leader wants to favoritize, and, as the NHS ad says: “This is us, now”, clearly demonstrating a no-whites ideal (NHS’s intentions, not mine).

Public health funnels money from people who paid to get coverage, to, on one part, those would be rejected in a normal system (non-insured people) because it’s easier to say yes when it’s diluted; to to, for the second part, people self-selected by the group of currently-employed people, ie in the UK it means that normal people are selected with all criteria but protected classes (the legal term, “protected classes”, I mean) have priority for those jobs.

You may pretend the NHS is not racist, but the NHS actions speak for themselves.
by leoff | 2025-07-26 12:48:52+00:00
>How many millions codebases use it is irrelevant.

It is relevant, because it speaks to the reliability of the dependency. `pydantic` has 24.7k Github stars and was last updated 52 minutes ago.

Adding a random dependency `dacite`, which has 1.9k Github stars, no one has ever heard of, and was last updated 4 months ago, introduces way more complexity and sources of instabilities than propagating `pydantic`.
by kurikuri | 2025-07-26 12:48:59+00:00
> When ever i see "never implement your own...", i know i want to implement it myself.

Doing stuff for learning is useful, and the intent behind this general phrase is to not ‘implement your own’ something which is both hard and critical in a production environment. I work in cryptography (for security purposes) and have implemented quite a few things myself to learn, but I still use stable, field tested, and scrutinized crypto for any actual use.

> People say that about hard things, and I only want to do hard things. Nobody wants people who can do easy things, people want people who can do hard things.

Only wanting to do hard things limits yourself quite a bit: what about things which seem easy but could be improved? I worked in a non-tech related medical manufacturing job for a bit and took time to learn the process and tools. Afterward, I implemented a few tools (using what my coworkers (who have no programming or IT experience) have available to them: Excel and the VBA on the lab computers) to help them prep inventory lists which they have been doing by hand. Doing it by hand took them 3 hours as a group (and the first shift had to do this every morning), which my tool did in 5 seconds with a single button click. They still use it to this day, about a decade later.

This wasn’t something ‘hard:’ I glued a few files together, grouped a list by a filter, sorted the groups by a column, and made a printout which was easy to read and mark on as they went about their day. However, my coworkers didn’t even know this was possible until someone came in with a different skill set, learned what they did (by doing the job well for months) and then made a solution.

You must be careful with doing only ‘hard’ things. It requires other people to identify what is hard! In addition: crackpots do only hard things and believe they find better solutions than what exists so far (without consulting or learning about what has been done). Interesting people learn about things as they are (with the humility of knowing that they are not experts in most things) and tries to improve them using the knowledge they already have.

Don’t waste your time rolling your own crypto when you could do the _actual_ hard thing and identify unaddressed space to make careful and considered improvements.
by PaulHoule | 2025-07-26 12:49:31+00:00
Crazy hills will do wireless in anywhere. In a rural area I am maybe a mile from the tower as the neutrino flies but a photon can’t make it. I have a bar of 5G in the pasture in front of the house but in the house it promises a bar of LTE but whether I can get out a text (w/o WiFi) depends on atmospheric conditions.

Out in Cali they have ring of fire conditions.

Too much crowding can do it too. A decade ago I was going to Cali a lot and thought it was funny to see so many ads for geospatial apps on TV that always showed a map of San Francisco when for me SF was where GIS went to die. Taking my Garmin handheld to the roof of the Moscone center because it was the only place it could get a clear view of the sky to sync up with GPS, so many twisty little streets that routing algorithms would struggle…. Being guided around to closed restaurant after closed restaurant and walking past 10+ open ones because a co-worker was using Yelp, etc.