• 0 Posts
  • 63 Comments
Joined 3 years ago
cake
Cake day: June 14th, 2023

help-circle
  • They’re quite versatile computers for general purposes, but their i/o performance is dreadful. Mine all max out at about ten megabytes per second. That will not do, for server purposes.

    Fortunately, there’s businesses all over that are chucking out all their old mini PCs since they won’t run Win11. I got an extremely decent one for £20 and it’s my new home server. Absolutely storms it, while just sipping at electricity.


  • Azure’s documentation is the worst fucking bullshit that I’ve ever read in all my days, and just about every single page or tool (including the CLI) has an integrated slopbot that routinely recommends commands and REST endpoints that don’t exist; it’s slow as fuck, and to do even the simplest things is agonising. But to give them their dues, their recent uptime has been pretty good.

    Truth be told, I’ve even come round to thinking that I prefer using Azure to Google Cloud Platform. Using any of Azure’s features is a pleasure akin to cutting yourself with a rusty nail and then falling in a sewer, but at least it has some features. GCP is like they implemented a quarter of the very basic functionality and then got fed up, decided to call it a day.



  • StarCraft 2 was released in 2007, and a quick search indicates the most common screen resolution was 1024x768 that year. That feels about right, anyway. A bit under a million pixels to render.

    A modern 4K monitor has a bit over eight million pixels, slightly more than ten times as much. So you’d expect the textures and models to be about ten times the size. But modern games don’t just have ‘colour textures’, they’re likely to have specular, normal and parallax ones too, so that’s another three times. The voice acting isn’t likely to be in a single language any more either, so there’ll be several copies of all the sound files.

    A clean Starcraft 2 install is a bit over 20 GB. ‘Biggest’ game I have is Baldur’s Gate 3, which is about 140 GB, so really just about seven times as big. That’s quite good, considering how much game that is!

    I do agree with you. I can’t think of a single useful feature that’s been added to eg. MS Office since Office 97, say, and that version is so tiny and fast compared to the modern abomination. (In fact, in a lot of ways it’s worse - has had some functionality removed and not replaced.) And modern AAA games do focus too much on shiny and not enough on gameplay, but the fact that they take a lot more resources is more to do with our computers being expected to do a lot more.


  • Yep. Arch on my personal multi-use laptop, Arch on my work Java-development laptop, Arch on my gaming PC, Arch on my home Forgejo / DNS / NAS server. Just easier to not have to remember how to do things in different ways, plus my home server can efficiently act as a repo cache.

    Did have ALARM installed on the home server back when I used a raspberry pi, and while that’s an amazing project, a pi is just a bit underpowered for some uses. Got a mini PC extremely cheap since it wouldn’t support Win11, but it runs Linux like a champ.


  • Awesome page, thanks. Have bookmarked.

    Harfbuzz though? That’s going to take some replacing. Hopefully someone will fork an earlier version. The thing that it does (accurate multi-script font shaping) is difficult to do; requires a lot of rule-of-thumb knowledge that’s unlikely to be possessed by a single person, needs a lot of collaboration.


  • addie@feddit.uktoProgrammer Humor@programming.devSenior devs...
    link
    fedilink
    arrow-up
    19
    arrow-down
    1
    ·
    4 months ago

    Abstraction is not very compatible with concurrency, so as well as your your beautiful abstract API, you also need some ‘cut through the layers’ functions to return the underlying classes you need to synchronise on. Now you have a right mess that’s incredibly hard to understand, infuriating to debug, and impossible to refactor. Best you can do is put another layer of abstraction on top. Repeat every six months.



  • addie@feddit.uktoSelfhosted@lemmy.worldRaspberry Pi 4B
    link
    fedilink
    English
    arrow-up
    7
    ·
    6 months ago

    Mine was my local Forgejo server, NAS server, DHCP -> DNS server for ad blocking on devices connected to the network, torrent server, syncthing server for mobile phone backup, and Arch Linux proxy, since I’ve a couple of machines that basically pull the same updates as each other.

    I’ve retired it in favour of a mini PC, so it’s back to being a RetroPie server, have loads of old games available in the spare room for when we have a party, amuses children of all ages.

    They’re quite capable machines. If they weren’t so I/O limited, they’d be amazing. They tend to max out at 10 megabyte/second on SD card or over USB / ethernet. If you don’t need a faster disk than that, they’re likely to be ideal in the role.


  • systemd-networkd gets installed by default by Arch, integrates a bit better with the rest of SystemD, doesn’t have so many VPN surprises, and the configuration is a bit more obvious to me - a few config files rather than NetworkManager’s “loads of scripts” approach. Small niggles rather than big issues.

    Really, I just don’t want duplication of services - more stuff to keep up-to-date. And if I’ve got SystemD anyway, might as well use it…


  • NetworkManager dependencies can now be disabled at build time…

    Nice. It was a damned nuisance that Cinnamon brought its own network stack with it. All my headless servers and my Plasma gaming desktop use systemd-networkd, which meant that my Cinnamon laptop needed different configuration. Now they can all be the same.

    Hopefully the new release will bash a few of the remaining Wayland bugs; Plasma is great but I prefer Cinnamon for work, and it’s just too buggy for gaming on a multi-monitor setup at the moment.





  • Java’s biggest strength is that “the worst it can be” is not all that bad, and refactoring tools are quite powerful. Yes, it’s wordy and long-winded. Fine, I’d rather work with that than other people’s Bash scripts, say. And just because a lot of Java developers have no concept of what memory allocation means, and are happy to pull in hundreds of megabytes of dependencies to do something trivial, then allocate fucking shitloads of RAM for no reason doesn’t mean that you have to.

    There is a difference in microservices between those set up by a sane architect:

    • clear data flow and pragmatic service requirements
    • documented responses and clear failure behaviour
    • pact server set up for validation in isolation
    • entire system can be set up with eg. a docker compose file for testing
    • simple deployment of updates into production and easy rollback

    … and the CV-driven development kind by people who want to be able to ‘tick the boxes’ for their next career move:

    • let’s use Kubernetes, those guys earn a fortune
    • different pet language for every service
    • only failure mode is for the whole thing to freeze
    • deployment needs the whole team on standby and we’ll be firefighting for days after an update
    • graduate developers vibe coding every fucking thing and it getting merged on Claude’s approval only

    We mostly do the second kind at my work; a nice Java monolith is bliss to work on in comparison. I can see why others would have bad things to say about them too.


  • Apart from being slow, having discoverability issues, not being able combine filters and actions so that you frequently need to fall back to shell scripts for basic functionality, it being a complete PITA to compare things between accounts / regions, advanced functionality requiring you to directly edit JSON files, things randomly failing and the error message being carefully hidden away, the poor audit trail functionality to see who-changed-what, and the fact that putting anything complex together means spinning so many plates that Terraform’ing all your infrastructure looks like the easy way; I’ll have you know there’s nothing wrong with the AWS Console UI.


  • Yeah. You know the first time you install Arch (btw), and you realise you’ve not installed a working network stack, so you need to reboot from the install media, remount your drives, and pacstrap the stuff you forgot on again? Takes, like, three minutes every time? Imagine that, but you’ve got a kernel compile as well, so it takes about half an hour.

    Getting Gentoo so that it’ll boot to a useful command line took me a few hours. Worthwhile learning experience, understand how boot / the initramfs / init and the core utilities all work together. Compiling the kernel is actually quite easy; understanding all the options is probably a lifetime’s work, but the defaults are okay. Setting some build flags and building ‘Linux core’ is just a matter of watching it rattle by, doesn’t take long.

    Compiling a desktop environment, especially a web browser, takes hours, and at the end, you end up with a system with no noticeable performance improvements over just installing prebuilt binaries from elsewhere.

    Unless you’re preparing Linux for eg. embedded, and you need to account for basically every byte, or perhaps you’re just super-paranoid and don’t want any pre-built binaries at all, then the benefits of Gentoo aren’t all that compelling.


  • Only has the functionality that you need, everything is obviously in its place. Runs incredibly quickly without using a lot of resources, and then gets out your way when you’re trying to do stuff. No settings hidden away because they might confuse novice users. No bullshit shoehorned in by managers.

    Apart from the ugly font rendering, this might be as good as the Windows UI ever got. WinNT looks the same and has almost incomparable stability improvements, but only if you’ve the right hardware to run it. WinXP starts the downhill slide with ‘appearance over functionality’ and the hot mess of the control panel.

    I could live with how OP has things set up here; my own copy of Plasma doesn’t look a million miles from this.


  • I’m in this photo and I don’t like it.

    More specifically, my programming background is in industrial automation and I’d like to add some more ‘robust and flexible’ algorithms to CoolerControl so I can control my system fans / temperature better, but it’s written in a mix of TypeScript and Rust.

    I’ve spent 20 years programming hard real-time z80 assembly and know quite a few higher-level languages. (Although I prefer the lower-level ones.) Not those ones, however, so it’s not just a couple of hours work to raise a PR against that project. Going to need to crack some books.


  • I understand that things have changed a bit since I first moved over to Linux - moving from Red Hat Linux to Ubuntu ‘Warty Warthog’ was such a revelation in overall user-friendliness and usability, back in the day. But upgrading my graphics card from an NVidia one to an AMD was a similar change. I might have only just installed the base operating system and a desktop environment and haven’t got around to a web browser yet, but I’ve already got full hardware accelerated graphics - that’s crazy.

    Most distros now make the NVidia drivers a complete non-issue, I think? My 6600XT is requiring just a few too many compromises on new games, so I’ll need something new too, sooner or later. I used to hold off on graphics cards updates until I could get something twice as good so that it was a noticeable upgrade, but I could buy a pretty decent second-hand car for all the ones which are ‘twice as good’ now.

    An upgrade from a 1050 Ti shouldn’t be such a problem. Well done on keeping it alive so long - I had a GeForce GTX 970 that would have been a similar age, but it let out its magic smoke years ago.