Skip Navigation
If you have an inner voice, does it sound like you or someone else?
  • It sounds like how I sound to myself when speaking, but not how I sound listening to a recording of myself.

    It also sounds different if I'm reading someone else's words.

  • How many can you tick off?
  • On bad days: 10

    On average: 6

  • Deserved honestly
  • I'd actually like to see someone try to slam their fist down on a table while drinking coffee without spilling.

  • Question: Linux desktops for programming
  • What DE or WM (and distro if relevant) do you use for your actual, professional work?

    I use both a MacBook and a Linux desktop running NixOS + Sway. I use the tmux + Helix editor on both. It's not uncommon that I will use my MacBook as a thin client for coding over SSH on my desktop. But the MacBook is actually quite snappy for building Rust code.

    Do you need to balance stability vs. customisability?

    While NixOS can be bleeding edge, I also quickly notice breaking issues and I can easily revert to a previous working boot image (there is a history of boot images saved in the boot loader).

    How much time do you find reasonable to put into maintaining/developing your setup?

    I think it's reasonable to spend a few days just getting to a working state, assuming you are starting from scratch. The long tail of maintenance should thin out quickly to the point where you are never really touching your config anymore.

    Did distro choice (or lack thereof) impact your choices for DE/WM?

    No.

    Do you feel like your code editor, language stack, or job profile has an impact on the choices?

    Not really. One time I did need to get a Windows VM running just to test out one of our Windows builds. A bit painful, but now that it's done, I don't really have to worry about it anymore.

  • Everything web based
  • If you can achieve the desired UX on web, I see few reasons to build a native app. But of course it can be hard to work with web technology sometimes; Javascript and WASM can't do everything and they aren't the best developer experience compared to more moderns languages.

    Even for offline usage, there is increasing support for progressive web apps. For example, I don't even need to be connected to the internet to use Exaclidraw after I've loaded the app once and installed it as a PWA.

    Then there are times when you simply need access to native platform APIs. SQLite is a a very important technology that isn't easily used from a web app. Most of the powerful APIs you get from an OS like the file system or graphics APIs are extremely watered down for the web.

  • Vintage gaming advertising pictures: a gallery
  • OK this cements my belief that people who work in marketing are batshit insane.

    Even after seeing backlash, they doubled down and kept running the ad.

  • Programming Extensible Data Types in Rust with CGP - Part 3: Implementing Extensible Records
  • The benefits advertised for CGP seem great but the cost also seems large. Reading that code is pretty painful.

  • new Date("wtf")
  • JS is a lost cause.

  • new Date("wtf")
  • Can we start a new web with a better language/platform already?

  • Study: Experienced developers thought they were 20% faster with AI tools, but they were actually 19% slower
    metr.org Measuring the Impact of Early-2025 AI on Experienced Open-Source Developer Productivity

    We conduct a randomized controlled trial to understand how early-2025 AI tools affect the productivity of experienced open-source developers working on their own repositories. Surprisingly, we find that when developers use AI tools, they take 19% longer than without—AI makes them slower.

    Measuring the Impact of Early-2025 AI on Experienced Open-Source Developer Productivity
    13
    Every Pixel Art Game Has This Problem... - YouTube
  • Tl;dw You can upscale a pixel art game without snapping the camera to the pixel grid.

  • Okay why is your distro the best?
  • NixOS. My entire config is source-controlled and I can easily roll back to a previous boot image if something breaks like cough Nvidia drivers. I also use it for my home router and all self-hosted services.

  • Clothing expresses gender not defines it
  • Right, if you don't give a fuck how the clothes fit, sure.

  • Happy dev noises
  • Wow I actually had a boss that wore these pants and wouldn't let me upgrade from a decade out-of-date visual studio C.

  • Learning to program in rust
  • Arc is not free, and the extra atomic operations + heap allocations can become a bottleneck.

  • What computer life hacks are your most used?
  • Use a tiling window manager like sway.

    Get some big HDDs and self host your own file storage on zfs. Same for media servers like jellyfin. You can also host qBitTorrent web client so it's accessible from anywhere.

    Set up a VM in Hetzner cloud and host vaultwarden.

    Expose your services over wireguard.

  • Important question
  • 8, 4, 5, 2, 3, 7.

    The rest are not worthy.

  • Chuck E. Cheese launches new arcade concept for adults
  • They call it: funflation.

    No. You made that up and now you're calling it that. I hate these basic-ass brainwashing media outlets so much.

    Is Good Morning America just ads disguised as news?

  • This Overly Long Variable Name Could Have Been a Comment | Jonathan's Blog
  • You say that like it can't also happen to symbol names.

  • A tail of the wizard Richard from my D&D campaign

    Richard once decided to read the mind of a hermit oracle who knew everything. This drove Richard insane.

    I just had to act insane for multiple D&D sessions.

    1
    Possible to bind qbittorrent to separate interfaces for clearnet and I2P?

    I ask because it would be nice to use the "I2P mixed mode" features of qbittorrent, but I want to keep my clearnet traffic on the VPN.

    Background

    I have I2PD running only on my home gateway for better tunnel uptime.

    To ensure that torrent traffic never escapes the VPN tunnel, I have configured qbittorrent to use only the VPN Wireguard interface.

    Problem

    I think this means qbittorrent I2P traffic will flow into the VPN tunnel, but then the VPN host won't know how to route back to my home gateway where the SAM bridge is running.

    1
    Firefox is constantly changing "http" to "https" for i2p sites

    I've configured my i2pd proxy correctly so things are somewhat working. I was able to visit notbob.i2p. But sometimes Firefox really likes to replace "http" with "https" when I click on a link or even enter the URL manually into the bar. I have "HTTPS-only mode" turned off, and I also have "browser.fixup.fallback-to-https" set to "false" and "network.stricttransportsecurity.preloadlist" to false.

    I tried spying on the HTTP traffic in web dev tools, and I see the request gets NS_ERROR_UNKNOWN_HOST. This does not happen when using the xh CLI HTTP client, so Firefox is doing something weird with name resolution. I made sure to turn off the Firefox DNS over HTTPs setting as well, but it didn't seem to make a difference.

    I assume that name resolution needs to happen in i2pd. How can I force Firefox to let that happen?

    Update: Chrome works fine.

    Update: I started fresh and simplified the setup and it seems fixed. I'm not entirely sure why. The only things I've changed from default are DoH and the manual HTTP proxy.

    1
    Is it possible to stay anonymous when joining a private tracker community?

    I was just reading through the interview process for RED, and they specifically forbid the use of VPN during the interview. I don't understand this requirement, and it seems like it would just leak your IP address to the IRC host, which could potentially be used against you in a honeypot scenario. Once they have your IP, they could link that with the credentials used with the tracker while you are torrenting, regardless of if you used VPN while torrenting.

    34
    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
    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?

    75
    DECEARING EGG
    1
    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.

    23
    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
    tatterdemalion tatterdemalion @programming.dev

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

    Posts 16
    Comments 655