Hacker Newsnew | past | comments | ask | show | jobs | submit | fsloth's commentslogin

The CPU on most machines is quite proprietary. I don’t understand this faux purity dogma.

Practical computing is not and never has been an abstract pure concept. It’s about making machines built by corporations to do usefull things at scale.

There is no ”non proprietary” computing unless you make your own stack.


Yes but there are business costs to using high-level proprietary tools and libraries. If you write your app using win32, you won’t be able to port is very easily. You’re also stuck with whatever bad or bizarre decisions Microsoft made.

It’s even worse for CUDA. GPUs are expensive, and now you’re vendor locked. You’re between a rock and a hard place. Either spend millions in engineering time, or millions on price-gauged hardware.


” If you write your app using win32, you won’t be able to port is very easily.”

This is wrong way around.

If you don’t support the platform your app runs on using the native api:s to the hilt your port is just bad.

If you actually want to support multiple platforms _you actually need to support_ them from the ground up.

This is speaking industrially and businesswise. A professional software business always has per-platform implementation resources. Or they have just one platform. Or they pretend they are multiplatform and then _everybody_ _daily_ fights with the problems this causes.

Obviously those elements that can be portable should be. It’s like Einsteins simplicity maxim - your codebase should be as portable as can be but not more.

” It’s even worse for CUDA…”

No these are just the business and market constraints. If this does not make sense for your offering then don’t use it. This feels like false FOMO - CUDA is not a silver bullet but it might be a specific solution to a specific problem.


It really depends on the application. The reason web is so successful as a platform is because it’s rich enough for most applications, and inherently cross-platform at an OS level.

And Re: CUDA: yes if it doesn’t make sense then dont use it. That’s sort of my whole argument. It might make some level of sense from a technical perspective, but that needs to be balanced with business risk. I’m saying a lot of people aren’t doing the balancing right, which is why these new tools have value.


Win32 is the most stable abi on the Linux desktop.

Correct, most of Linux user land targets API stability, not ABI stability. Windows targets ABI stability because applications are typically distributed as binary blobs. Most applications on Linux are open-source and built per each distro, so it’s a non-issue, just recompile.

This doesn’t work for proprietary software that’s distributed as blobs and rarely updated, like say, video games. But that’s a minority of stuff on Linux. But not on windows.

Realistically, on Linux applications target specific API versions of frameworks. Like Qt 6, or GTK 3, or whatever. Then everything is compiled or dynamically linked at a per-distro level. The ABI compat can bite specifically when distros enforce strict dynamic linking. But then containerization technologies come in.

And there is a difference between API and ABI stability. For example, adding SSO to std::string in C++ broke ABI, not API. If you recompile it’s fine, everything works. If you don’t then it doesn’t.


Sadly glibc made the choice for everyone that you have to recompile constantly to keep your app working.

That’s one of the biggest issues keeping Linux small on the desktop since nearly no commercial oriented company works that way.

But it looks like we will soon be able to „virtualize“ the dynamic loader so glibc has no say in this matter anymore.


Dead wrong. Win32 (externally) only seems stable, but internally it changes between Windows releases. Win7 syscalls are completely different from Win11 syscalls, meaning if I want to release a binary _without relying_ on Win32 I need to provide full syscall mappings _for each and every Windows version_. This doesn't happen on Linux.

> only seems stable, but internally it changes

That's literally the definition of it being stable. Programs written against an interface keep working despite the implementation changing. The Linux kernel also constantly changes internally but programs written against syscalls keep working, so it is stable; that fact doesn't stop being a fact just because I dislike perf_event_open(2) or whatever. This is all very basic and easy to understand.


Those are not a part of the API contract in case with NT kernel, though, unlike Linux.

Also, there are OS-provided shims in ntdll.dll (which, by the way, isn't a part of Win32 platform API, but a part of the NT kernel interface).


>> Win32 is the most stable abi on the Linux desktop.

> Dead wrong [...] if I want to release a binary _without relying_ on Win32

Then you are not using the Win32 ABI, are you?


I wonder which APIs you would use to port easily, because POSIX and Khronos aren't it either, as they are industry standards driven by companies where one has to pay for a seat at Open Group and Khronos offices.

There is no ”easy” porting.

Once this is accepted the rest becomes easier as you are not wasting time trying to find a silver bullet.

I mean it’s then ”just normal work”.


Exactly.

> If you write your app using win32, you won’t be able to port is very easily.

Is this still true? eg, Shopify saying porting is now easy so no need for abstractions.


Porting has never been hard. Just follow the platform guidelines. Make sane architecture. Done.

I mean _it's just work_. You don't need to invent anything. Just do the work.

What _is_ hard is when people run after silver bullets to avoid all this work.

Because people who don't understand software decide it would be cheaper to implement something only once. Or someone who does not really understand what they are doing insists that same C++ code runs automatically on all platforms.

AI has given the software engineers permit from the beancounters to do the sane thing.

Good software development orgs _have always_ done proper per platform ports.

Also - there is nothing wrong in supporting only one platform as such!


> Good software development orgs _have always_ done proper per platform ports.

I really wonder why this was never fundamentally fixed. How performant a certain instruction on a specific platform is, how well it is supported and potential equivalents or sets of other instructions to emulate an equivalent are usually all very well understood.

So there should be some graph of operations which can transform any software from and to the specifics of each platform. Especially because firmware + compliers + platform abstracting libraries are basically already just that graph, although (usually?) to lossy to be applied in reverse. Add the recent developments in very large scale statistics to it and it'd probably be quite possible to transform from and to generic intent in the implementation to the uniqueness of each platform. E.g. the theming differences between a MacOS UI and a terminal application served over serial or the processing capabilities of a VLIW CPU compared to a FPGA or a GPU server.

Considering the enormous amount of work that went into compilers, better debugging and intermediate representations it seems like a huge missed opportunity nobody seriously asked the question whether information could be emitted that would allow for decompiling all the way back to the generic intent.


I can program all my non-CUDA GPUs use completely open non-proprietary toolchains. And if that ceases to be the case on one platform I can switch platforms without having to rewrite all my code.

"no STEP/IGES/BRep output"

SketchUp does not really have that either if you are expecting something else than triangles. Since sketchup has polygons you could argue they are brep but even then only accidentally.

Architecture works with a bit different ruleset than mechanical cad.


" if you want something that can be manufactured that's not good enough"

People design all sort of buildable things in SketchUp and it's just about dragging polygons around.

You _may_ need accurate surface if you run your model to CAM.

But to this day lot of manufacturing is still done via drawings and there the only thing that matters is that can you draw some type of lines and attach clear dimensions to them. So the shapes don't necessarily need to be accurate for all flows since they are more like topological hints to the person reading the drawing rather than accurate replica of the thing to manufacture.


AdaShape, a non-complicated 3D modeler for 3D printable shapes (desktop).

I just released a new version with lots of new modeling tools: https://adashape.com/blog/alpha-0-2-0/

As a highlight the lofting tool is pretty fun complement as it allows combining multiple drawings in an intuitive way to define a certain category of complex 3D surfaces without too much effort (https://adashape.com/manual/adashape/en/shp-loft/).

I've been chipping away at manual as well - and found it was a really good idea to write my changelogs in product voice as I can more or less recycle that copy text into the manual verbatim https://adashape.com/manual/adashape/en/

(Previously featured on HN in https://news.ycombinator.com/item?id=47638498 )


This is a bit strange article.

If you enjoy doing a thing in specific way, nobody is going to take that away.

Chess is a great example. More players than ever, perfectly obsolete if you compare yourself to a computer, but that does not hurt.

If the AI takes your livelihood - that hurts. But I did not read this to be a complaint on that.


"has AI broken that stranglehold?"

Whatever AI is, it _is_ a huge democratizing influence in all fields.


The dog is even more on the nose. The shadow shape is almost the same despite the dog getting quite a lot of volume around it's original body parts.

Not all people can!

If you want to discuss a matter, it would be nice to spell out your point of view.

How is the person supposed to know your opposing point of view if you don't tell it?


Oh! So were sheep just for meat back then?

No, the sheep were harvested for wool, but not by shearing. When they shed, we picked the shed wool from them.

Modern sheep grow their wool continuously, but that took a while to breed in.


> Modern sheep grow their wool continuously, but that took a while to breed in.

No they don't.

In the summer their wool starts to grow out much thinner, like maybe a quarter as thick - it's really noticeable. This gives what's called a "rise", a gap between the sheep's skin and the thicker coarser wool. Once that's high enough to get shears (or these days, machine clippers which are like a big beard trimmer) into you can shear the fleece off.

If there's no rise you haven't a hope in hell of cutting it.

If there's a good rise it practically falls off.

If you leave them long enough or if the rise starts growing in too soon, they'll start "casting" where their wool just falls off in big chunks. This is actually quite dangerous for them because it's itchy and they roll on their backs to scratch, and get stuck upside down with their legs in the air and suffocate.

And you thought sheep farming was easy and fun ;-)


I thought animal farming in general is an arcane science.

My friends have goats but they aren't farmers and they haven't got a clue how to care for them. The females sometimes are left with milk in their breasts after their young are weaned and one of my friends will get anxious about that and ask us to help her milk them. It's impossible. You can't milk a goat that doesn't want to be milked. If you push them too hard they lie down so you can't reach their teats and that's that unless you want to have three people lifting the goat up and another one trying to milk her while she squirms and kicks. I don't trust the milk either. Once in a while they succeed in milking a goat and when I tried the milk (after boiling it) it was sort of gritty, like it was mixed with sand. It was not impurities from the environment because I filtered it through a muslin so I think the animal may have had some infection like a mastitis or something that affected the milk's texture.

I bet farmers know exactly what to do about all that or probably they know how to get the animals used to milking when they're still young so that the won't resist it that much. I've watched videos of goats being milked and it looks almost effortless when a pump is used. The goats just line up in their feeding trays and then someone walks up to them from behind, pumps out their tits and moves to the next one, bish bash bosh. My friends don't even have a dedicated structure to feed the goats, we just throw hay for them on the ground so they end up fighting.

My friends really have no idea how to care for the goats, it's rather sad. The owner of the farm has even said he wants to get "wild" goats that don't need to be cared for. By that he means a herd of goats that have gone feral and roam the hills in a village nearby. He thinks because nobody actively cares for them and the herd persists that must mean the goats are somehow self-sufficient. I think that's a big misunderstanding. Domesticated animals need a lot of care one way or another.

I think I'd prefer to have sheep though, if I had animals. Sheep look much nicer than goats.


I absolutely love goat's milk and I would love to keep goats, but they are every possible kind of a pain in the tits to deal with.

A neighbour of mine had a goat that we thought had some terrible thing happen because she was choking and gagging and frothing at the mouth like some cartoon rabid animal. Nope, far simpler. She'd eaten a grey lycra-and-elastic sports bra off the washing line, got a bra strap hooked over her tongue, and the rest of the bra down her throat. Hooked the strap with my finger, pulled it out in one quick deft rather unpleasantly squelchy motion, and ten seconds later you'd never have thought there had been anything wrong with her.

The bra went in the bin.

Bloody goats.

Your friends either need to learn how to care for goats - if only there was some world-wide repository of knowledge with books and videos and stuff! - or give them a good home somewhere else. They're probably hard to milk because as you say they're not used to being handled, and it may be too late to do that by now. If that's the case, you may never be able to milk them no matter how you handle them, and maybe you can breed from them, or maybe you can give them a nice new home, cosy and fragrant, along with some onion, garlic, ginger, cumin, coriander, and chilli, with a kilo or so of spinach too.

As an aside, you probably want to get yourself a copy of "Self-Sufficiency" by John Seymour, and have a read of that.


>> The bra went in the bin.

XD My friend got her skirt munched. While wearing it.

I totally think it's like you say: the goats have never learned to be milked and now they'll never learned. The new generation might, but who's going to teach them? Not me because I'm only there half the year (when it's hot and I don't want to move).

>> As an aside, you probably want to get yourself a copy of "Self-Sufficiency" by John Seymour, and have a read of that.

Thanks. I'll have a look.


Maybe also for leather?

And in nature sheep drop their coats without shearing.


do they? there are reports of lost sheep which when found had a very thick fur or whatever the shepherds call it

Sorry, when I said in nature, I meant undomesticated sheep.

Domesticated sheep that get lost for a while don't magically learn how to shed their coat, yes.


Pretty much all domesticated sheep will cast their fleeces.

There are some breeds that don't, and obviously due to random genetics you'll get individuals that don't.

Sheep that don't cast their fleeces are damn near impossible to shear and are mostly kept for meat. Likewise, sheep that don't have much of a "rise" (see my other comment) and are difficult to shear quite often, uh, don't have a particularly long career, as it were.


Man shearing this one is a pain in the a$$. Hand me the sticking knife ...

Well, not quite, but it's one you're going to cull out at the end of the year when it's time for them to go to market.

And of course, the only truly stockproof sheep enclosure is a deep freeze.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: