addie

joined 1 year ago
[–] [email protected] 7 points 2 months ago

Yeah, I'm with you there - worked for twenty years in water treatment myself. Water before it's been chlorinated / chloraminated for supply? Makes the best cups of tea and coffee ever - you need to boil it, of course. RO water? Vile.

[–] [email protected] 43 points 2 months ago (8 children)

The joke about adding well water back in again at the end is "correct". Reverse osmosis removes 100% of the solids from the water, but drinking water usually contains small quantities of solids - you can see a breakdown on the label of some bottled water. Completely pure water would leach all of the solids that have built up on the insides of water pipes over the decades, and leaches away the protective oxide layer from metal pipework, causing it to corrode surprisingly rapidly. It also tastes pretty shitty - kind of "dead". So a small amount of high-solids water is mixed back in after RO to bring the water back to normal levels.

All that other shit in the diagram? No. Purification and treatment takes place after the mixing step, it would be crazy not to.

[–] [email protected] 4 points 3 months ago (2 children)

Do Iceland still do Official Greggs Products in their freezer section? Steak bakes made at home never tasted quite the same as they do off of the tray of random temperature in the shops, but sometimes that's an itch that needs scratching.

Get a few bottles of suspiciously-cheap no-brand spirits, a few cartons of fruit drink and a couple of bottles of carbonated beverages, empty the whole lot into the 'punch' bucket while the 50-piece snack food selections heats through in the oven, including a few genuine Greggs items as centrepieces? Am telling you, Iceland has everything you need to kickstart a very reasonably-priced house party.

[–] [email protected] 53 points 3 months ago (2 children)

Obligatory www.web3isgoinggreat.com - catalogues all of the grifts, hacks and thefts, with a running $$$ total.

[–] [email protected] 1 points 3 months ago

As an example of a language that many people are familiar with, which is likely to be in long-term use where maintainability is most important, and which can almost read like pseudocode anyway, sure - probably the best 'real language' choice.

[–] [email protected] 22 points 3 months ago (2 children)

You can write an unmaintainable fucking mess in any language. Rust won't save you from cryptic variable naming, copy-paste code, a complete absence of design patterns, dreadful algorithms, large classes of security issues, unfathomable UX, or a hundred other things. "Clean code" is (mostly) a separate issue from choice of language.

Don't get me wrong - I don't like this book. It manages to be both long-winded and facile at the same time. A lot of people seem to read it and take the exact wrong lessons about maintainability from it. I think that it would mostly benefit from being written in pseudocode - concentrating on any particular language might distract from the message. But having a few examples of what a shitfest looks like in a few specific languages might help

[–] [email protected] 15 points 3 months ago

My old job had a lot of embedded programming - hard real-time Z80 programming, for processors like Z800s and eZ80s to control industrial devices. Actually quite pleasant languages to do bit-twiddling in, and it's great to be able to step through the debugger and see that what the CPU is running is literally your source code, opcode by opcode.

Back when a computers were very simple things - I'm thinking a ZX Spectrum, where you can read directly from the input ports and write directly into the framebuffer, no OS in your way just code, then assembly made a lot of sense, was even fun. On modem computers, it is not so fun:

  • x64 is just a fucking mess

  • you cannot just read and write what you want, the kernel won't let you. So you're going to be spending a lot of your time calling system routines.

  • 99% of your code will just be arranging data to suit the calling convention of your OS, and doing pointless busywork like stack pointer alignment. Writing some macros to do it for you makes your code look like C. Might as well just use C, in that case.

Writing assembly makes some sense sometimes - required for embedded, you might be writing something very security conscious where timing is essential, or you might be lining up some data for vectorisation where higher-level languages don't have the constructs to get it right - but these are very small bits of code. You would be mad to consider "making the whole apple pie" in assembly.

[–] [email protected] 48 points 3 months ago (12 children)

Cheaper for now, since venture capitalist cash is paying to keep those extremely expensive servers running. The AI experiments at my work (automatically generating documentation) have got about an 80% reject rate - sometimes they're not right, sometimes they're not even wrong - and it's not really an improvement on time having to review it all versus just doing the work.

No doubt there are places where AI makes sense; a lot of those places seem to be in enhancing the output of someone who is already very skilled. So let's see how "cheaper" works out.

[–] [email protected] 12 points 3 months ago (1 children)

PS3 most certainly had a separate GPU - was based on the GeForce 7800GTX. Console GPUs tend to be a little faster than their desktop equivalents, as they share the same memory. Rather than the CPU having to send eg. model updates across a bus to update what the GPU is going to draw in the next frame, it can change the values directly in the GPU memory. And of course, the CPU can read the GPU framebuffer and make tweaks to it - that's incredibly slow on desktop PCs, but console games can do things like tone mapping whenever they like, and it's been a big problem for the RPCS3 developers to make that kind of thing run quickly.

The cell cores are a bit more like the 'tensor' cores that you'd get on an AI CPU than a full-blown CPU core. They can't speak to the RAM directly, just exchange data between themselves - the CPU needs to copy data in and out of them in order to get things in and out, and also to schedule any jobs that must run on them, they can't do it themselves. They're also a lot more limited in what they can do than a main CPU core, but they are very very fast at what they can do.

If you are doing the kind of calculations where you've a small amount of data that needs a lot of repetitive maths done on it, they're ideal. Bitcoin mining or crypto breaking for instance - set them up, let them go, check in on them occasionally. The main CPU acts as an orchestrator, keeping all the cell cores filled up with work to do and processing the end results. But if that's not what you're trying to do, then they're borderline useless, and that's a problem for the PS3, because most of its processing power is tied up in those cores.

Some games have a somewhat predictable workload where offloading makes sense. Got some particle effects - some smoke where you need to do some complicated fluid-and-gravity simulations before copying the end result to the GPU? Maybe your main villain has a very dramatic cape that they like to twirl, and you need to run the simulation on that separately from everything else that you're doing? Problem is, working out what you can and can't offload is a massive pain in the ass; it requires a lot of developer time to optimise, when really you'd want the design team implementing that kind of thing; and slightly newer GPUs are a lot more programmable and can do the simpler versions of that kind of calculation both faster and much more in parallel.

The Cell processor turned out to be an evolutionary dead end. The resources needed to work on it (expensive developer time) just didn't really make sense for a gaming machine. The things that it was better at, are things that it just wasn't quite good enough at - modern GPUs are Bitcoin monsters, far exceeding what the cell can do, and if you're really serious about crypto breaking then you probably have your own ASICs. Lots of identical, fast CPU cores are what developers want to work on - it's much easier to reason about.

[–] [email protected] 28 points 4 months ago (7 children)

I think when Disney demands an internally-hosted version of your product, then the sales team tells engineering that they'll provide one, and mark the price up accordingly. That kind of thing doesn't appear on the external listing for everyone else.

[–] [email protected] 41 points 4 months ago

The kernel option is mitigations=off, if you want to try adding it to your Grub command line? From the testing I've done, provides no benefits whatsoever - no more frames in games, compilation runs no quicker, battery life on a laptop is no better.

https://wiki.archlinux.org/title/Improving_performance#Turn_off_CPU_exploit_mitigations

[–] [email protected] 10 points 4 months ago

If you made memory access lines twice as wide, they'd take up more space. More space means (a) chips run slower, because it takes time for the electricity to get there (b) they'd be bigger and more expensive.

The main problem with 32-bit, as others have noticed, is that that's not really so much RAM. CPUs do addition and subtraction the way we were taught at school - 'carry the one', they've an overflow bit that's set when your sum doesn't fit in the columns. On 8-bit CPUs, we were always checking back when adding up large numbers. On 64-bit CPUs, we can deal with truly massive numbers anyway, it's not such a hassle. And they're so fast at doing sums anyway and usually waiting for memory, it's barely a hassle.

Moving to 128-bit would give us a truly minuscule, probably unmeasurable, benefit in exchange for significant downsides. We could make them, but it would be pointless.

view more: ‹ prev next ›