Skip Navigation
tatterdemalion tatterdemalion @programming.dev

Professional software engineer, musician, gamer, amateur historian, stoic, democratic socialist

Posts 9
Comments 344
What are your experiences with mono repos?
  • I think it mostly has to do with how coupled your code modules are. If you have a lot of tightly coupled modules/libraries/apps/etc, then it makes sense to put them in the same repo so that changes that ultimately have a large blast radius can be handled within a single repo instead of spanning many repos.

    And that's just a judgement call based on code organization and team organization.

  • Straw Hat Riot
  • Wild read.

    The tradition of hat smashing continued for some time after the riots of 1922. In 1924, a man was murdered for wearing a straw hat.

    I would like to learn more about that.

  • Megaminx
  • It's very fun to solve this one without help. There's no parity issue, and it's actually quite similar to solving a Rubik's cube, but with a few extra algos necessary to complete the last "layer".

  • Immutable distros recommindation?
  • There's also the Wayblue family of Wayland distros, based on Ublue.

    It's hard to say for certain whether a distro will work for your hardware, even the Nvidia-specific images can have bugs related to the Nvidia drivers or their interaction with compositors.

    I've used NixOS for a year.

    I also tried Fedora Sway Atomic for a week or so. It mostly worked well, but I eventually found that it's really hard to use Nix for development on a graphics application, because linking with the system Vulkan drivers is near impossible. The loader used by Nix's glibc will ignore FHS locations. That seems to rule out a lot of the benefits of using Nix.

    So I gave up on using Nix + Fedora as a failed experiment and went back to NixOS.

    My wish list for Nix, Wayland, and Sway is pretty long. I kinda wish I had the time to make a new distro.

  • Attitude to Religion and its believers.
  • I just don't support dogmatic thinking and indoctrination, especially when it creeps into politics, which is inevitable at the scale of the most popular religions.

    In theory I have no problem with other people's faith, but in practice it degrades the critical thinking capacity of our population and, paradoxically, the moral capacity as well. That's a net negative in my opinion.

    Charities exist without religion. I think religions often teach good moral frameworks, though very traditional. But those come with a huge caveat that you cut out a big hole in your brain for the belief that God exists and cares about how you behave. That one idea leads to so much trouble, from false prophets to normalized misogyny and hatred of gay people.

  • What generation are you?
  • They are arbitrary but they at least serve as marking posts for real generational trends. I'm not sure there is much benefit in trying to find any categorization that isn't arbitrary, so long as the generations are large enough.

  • Impressed by Fedora Sway Atomic!
  • So I'm seeing "Window Protocol: wayland" in about:support. Seems like somehow I'm just not affected by this issue.

  • What's your best future band name?
  • Potentially Wasted

    Ranglin' Pangolins

  • A cool guide to vehicles with the most DUIs
  • Shouldn't this be normalized by the prior distribution of the car population?

  • Context
  • Let's not lower the standard anywhere near Trump.

  • Context
  • "crushing it" might be a bit superlative but sure

  • Impressed by Fedora Sway Atomic!
  • Away from PC for a while but I'll check when I'm back.

  • Impressed by Fedora Sway Atomic!
  • Interesting. I am not having any issues with Firefox. Maybe I'm already running in XWayland somehow?

  • Impressed by Fedora Sway Atomic!
  • After a little more time with it, I've noticed that nvidia + sway is causing a lot of flickering on updating rectangles of any window, presumably from a compositing issue. I expected the "explicit sync" fix in the 555 Nvidia driver to fix this, but I'm currently running 555.85. I hope it's not some other issue.

  • Impressed by Fedora Sway Atomic!
  • So right off the bat I tried rebasing from Fedora Sway Atomic to the Wayblue sway-nvidia image, but I got the error:

    Package 'rpmfusion-nonfree-release-40-1.noarch' is already in the base
    

    I think because I had previously tried installing nvidia drivers from RPM Fusion. So I reset back to the base image with:

    rpm-ostree reset --overlays
    

    After that everything went smoothly and I'm apparently booted with a functional Nvidia driver. Thanks for the help! I'm off to try running some graphics.

  • Impressed by Fedora Sway Atomic!
  • Oh thanks! I didn't notice "Sericea" was the name of this image when I installed it. Wish that had been more obvious.

  • Impressed by Fedora Sway Atomic!
  • Wait. Where are you finding the sway image? I'm browsing the images but I don't see it.

    EDIT: Maybe it's only Way blue that has sway?

  • Impressed by Fedora Sway Atomic!
  • Oh I didn't realize they had one with Sway. That helps!

  • Those without A/C, what are your tips to stay cool during the summer?
  • Buy a portable AC unit and install it in your bedroom or living room window.

    EDIT: I have this one that works well at least on a single room: https://www.amazon.com/Vremi-000-BTU-Portable-Conditioner/dp/B084H4B6NB?th=1

  • Impressed by Fedora Sway Atomic!

    I'm preparing for a new PC build, and I decided to try a new atomic OS after having been with NixOS for about a year.

    First I tried Kinoite, then Bazzite, but even though KDE has a lot of features, I found it incredibly buggy, and it even had generally poor performance, especially in Firefox. I don't really have time to diagnose these issues, so I figured I would put in just a little more effort and migrate my Sway config to Fedora Sway Atomic.

    I'm glad I did. The vanilla install of Fedora Sway is awesome. No bloat and very usable. I haven't noticed any bugs. Performance is excellent. And it was very straightforward to apply my sway config on top without losing the nice menu bar, since Fedora puts their sway config in /usr/share/sway.

    I'm also quite happy with the middle ground of using an OSTree-based Linux plus Nix and Home Manager for my user config. I always thought that configuring the system-level stuff in Nix was the hardest part with the least payoff, but it was most productive to have a declarative config for my dev tools and desktop environment.

    I originally tried NixOS because I wanted bleeding edge software without frequent breakage, and I bought into the idea of a declarative OS configuration with versioned updates and rollback. It worked out well, but I would be lying if I said it wasn't a big time investment to learn NixOS. I feel like there's a sweet spot with container images for a base OS layer then Nix and Home Manager for stuff that's closer to your actual workflows.

    I might even explore building my own OS image on top of Universal Blue's Nvidia image.

    Hope this path forward stays fruitful! I urge anyone who's interested in immutable distros to give this a try.

    25

    Critique my idea for a language

    I've never felt the urge to make a PL until recently. I've been quite happy with a combination of Rust and Julia for most things, but after learning more about BEAM languages, LEAN4, Zig's comptime, and some newer languages implementing algebraic effects, I think I at least have a compelling set of features I would like to see in a new language. All of these features are inspired by actual problems I have programming today.

    I want to make a language that achieves the following (non-exhaustive):

    • significantly faster to compile than Rust
    • at least has better performance than Python
    • processes can be hot-reloaded like on the BEAM
    • most concurrency is implemented via actors and message passing
    • built-in pub/sub buses for broadcast-style communication between actors
    • runtime is highly observable and introspective, providing things like tracing, profiling, and debugging out of the box
    • built-in API versioning semantics with automatic SemVer violation detection and backward compatible deployment strategies
    • can be extended by implementing actors in Rust and communicating via message passing
    • multiple memory management options, including GC and arenas
    • opt-in linear types to enable forced consumption of resources
    • something like Jane Street's Ocaml "modes" for simpler borrow checking without lifetime variables
    • generators / coroutines
    • Zig's comptime that mostly replaces macros
    • algebraic data types and pattern matching
    • more structural than nominal typing; some kind of reflection (via comptime) that makes it easy to do custom data layouts like structure-of-arrays
    • built-in support for multi-dimensional arrays, like Julia, plus first-class support for database-like tables
    • standard library or runtime for distributed systems primitives, like mesh topology, consensus protocols, replication, object storage and caching, etc

    I think with this feature set, we would have a pretty awesome language for working in data-driven systems, which seems to be increasingly common today.

    One thing I can't decide yet, mostly due to ignorance, is whether it's worth it to implement algebraic effects or monads. I'm pretty convinced that effects, if done well, would be strictly better than monads, but I'm not sure how feasible it is to incorporate effects into a type system without requiring a lot of syntactical overhead. I'm hoping most effects can be inferred.

    I'm also nervous that if I add too many static analysis features, compile times will suffer. It's really important to me that compile times are productive.

    Anyway, I'm just curious if anyone thinks this would be worth implementing. I know it's totally unbaked, so it's hard to say, but maybe it's already possible to spot issues with the idea, or suggest improvements. Or maybe you already know of a language that solves all of these problems.

    9

    Oh yea, that's the good stuff huffs glue

    22

    What's the point of terminal file managers (mc, ranger, nnn, etc)?

    Who are these for? People who use the terminal but don't like running shell commands?

    OK sorry for throwing shade. If you use one of these, honestly, what features do you use that make it worthwhile?

    77

    How do you balance rapid iteration and merging/upgrading?

    More specifically, I'm thinking about two different modes of development for a library (private to the company) that's already relied upon by other libraries and applications:

    1. Rapidly develop the library "in isolation" without being slowed down by keeping all of the users in sync. This causes more divergence and merge effort the longer you wait to upgrade users.
    2. Make all changes in lock-step with users, keeping everyone in sync for every change that is made. This will be slower and might result in wasted work if experimental changes are not successful.

    As a side note: I believe these approaches are similar in spirit to the continuum of microservices vs monoliths.

    Speaking from recent experience, I feel like I'm repeatedly finding that users of my library have built towers upon obsolete APIs, because there have been multiple phases of experimentation that necessitated large changes. So with each change, large amounts of code need to be rewritten.

    I still think that approach #1 was justified during the early stages of the project, since I wanted to identify all of the design problems as quickly as possible through iteration. But as the API is getting closer to stabilization, I think I need to switch to mode #2.

    How do you know when is the right time to switch? Are there any good strategies for avoiding painful upgrades?

    23

    DECEARING EGG

    1

    These memes are

    18

    How to handle "bad" moderation?

    I just commented on this post and it got removed very quickly. Then I noticed that all of the comments had been removed and the post is locked.

    I cannot understand why this happened, as the comments section had seemed pretty reasonable to me.

    This seems like bad moderation and I'm now less inclined to post or comment in the world news community. What should I do?

    I tried messaging a mod that is seemingly online and actively posting, but I got no response.

    22

    Why does a small Lemmy instance perform better when accessing federated content?

    After moving from lemmy.ml to programming.dev, I've noticed that web responses are fulfilled much more quickly, even for content on federated instances like lemmy.ml and lemmy.world.

    It seems like this shouldn't make such a big difference. If a large instance is overloaded, it's overloaded, whether the traffic is coming from clients with accounts on that instance or from other federated instances.

    Can this be explained entirely by response caching?

    2