Not a senior dev thing, just a bad dev thing.
Professional software engineer, musician, gamer, stoic, democratic socialist
- 1 Post
- 55 Comments
These days with language services, code should be compiling after nearly every edit.
tatterdemalion@programming.devto
Programmer Humor@programming.dev•All money probably went into NVIDIA GPUs
7·15 days agoYou can just dual-license as AGPL and a separate commercial license that you negotiate on a case-by-case basis.
Regarding the derive macros, there are a few reasons these are required.
- Rust does not have a language runtime (like Java). So certain features that would normally require reflection instead require an opt-in trait implementation. This is part of Rust’s “zero cost abstractions” philosophy. You don’t pay for code you don’t need.
- You get the benefit of being able to customize the behavior of those core traits. Rather than doing something simple (and wrong) for every type, like a byte-for-byte equality check, you get to define the behavior that is appropriate for a given type.
- The derive macros are just a convenience. You are free to use “regular code” to implement those traits instead.
Someone explain the Rustacean failing to support MacOS.
Did you read the post? It ends with several critiques of Rust.
tatterdemalion@programming.devto
Programmer Humor@programming.dev•You can pry pattern matching from my cold dead hands
1·2 months agoI guess I see what you mean if we want to get very technical about what a syntax extension is. But I think for the purpose of this discussion, it’s reasonable to think of
macro_rules!as a part of the Rust language. Practically speaking, it is syntax provided by the language team, not just users of the language who are free to extend the syntax by usingmacro_rules!to do so.
tatterdemalion@programming.devto
Programmer Humor@programming.dev•You can pry pattern matching from my cold dead hands
6·2 months agoEnums are the best part of the Rust language IMO, so I’m not sure how you can view them as ugly. Having the choice to destructure something is fantastic. You generally aren’t required to destructure every return value. Make sure you’re using the
?operator as much as possible. If destructuring is getting in your way, it sounds like the code is not very idiomatic.I can’t really comment on your issue with nested
ifandmatch. Too much nesting is bad in any language; try extracting more functions and let bindings to make it more readable.You can enable a clippy lint to deny
.unwrap()if you’re worried about it.
tatterdemalion@programming.devto
Programmer Humor@programming.dev•You can pry pattern matching from my cold dead hands
21·2 months agoSorry, I love Rust but I can’t really agree with you here. They only showed a
macro_rules!definition, which is definitely rust syntax. Lifetime annotations are relatively common.I will concede that loop labels are incredibly rare though.
tatterdemalion@programming.devto
Linux@programming.dev•Building the PERFECT Linux PC with Linus Torvalds - LTT
4·2 months agoYes, and I appreciate that you pressed the issue because I never heard what ultimately transpired, since I never really cared for the channel before that. But I see they hired a 3rd party to investigate and the conclusion was that none of the allegations were substantiated. Though I haven’t found any mention of a further response from the employee that made the allegations.
tatterdemalion@programming.devto
Linux@programming.dev•NixOS 25.11 "Xantusia" Ships with GNOME 49, Linux kernel 6.17
4·2 months agoswitch
I don’t think there is even a default DE. I think the graphical installer lets you choose GNOME, Plasma, or none.
tatterdemalion@programming.devto
Linux@programming.dev•NixOS 25.11 "Xantusia" Ships with GNOME 49, Linux kernel 6.17
3·2 months agoNixOS “ships with” whatever exists in nixpkgs. So you could read this as “nixpkgs channel 25.11 ships GNOME 49”.
And you can see that is true, here: https://search.nixos.org/packages?channel=25.11&show=gnome-shell&query=gnome-shell
tatterdemalion@programming.devto
Linux@programming.dev•Building the PERFECT Linux PC with Linus Torvalds - LTT
61·2 months agoI’m more concerned about the sexual harassment.
tatterdemalion@programming.devto
Linux@programming.dev•Trying to learn Linux, coming from windows
38·2 months agoLinux is broad and deep so it would help if you gave some examples of tasks you are failing to do.
Edit: I guess I can give some fundamental topics for your search, but I don’t have many resources at the ready.
For starters, many topics will apply to all of Unix, not just Linux. So make sure you understand the difference, and learn about the Unix philosophy.
Also, I think the most useful piece of documentation is the Arch Wiki. I’d always check here first. The table of contents should give you a good idea of the scope of information.
- Filesystems. In Unix, everything is a “file”. Explore the directory layout. Maybe learn about the FHS (filesystem hierarchy standard) and XDG. Learn how file permissions and ownership work. Learn about disk encryption with LUKS. Learn about GPT partitioning and EFI boot partitions. If you want to manage a filesystem spanning many storage devices, I highly recommend looking into ZFS. You might also want to set up some kind of file service like NFS or something with a web client like copyparty or dufs. Try out the
dustandduftools for checking space usage. - Networking. I don’t know how deep you need to go here, but Linux networking is highly customizable. I think most distros use systemd’s built-in DHCP client in systemd-networkd. Have a look at nftables if you want to mess with firewalls. Wireguard for VPN. Learn to use the
iptool. - Remote Access. Especially for a desktop, it’s very useful to set up an SSH service on your PC so you can access it remotely from e.g. a laptop. You can even SSH over the public Internet using a VPN.
- Monitoring. Install BTop to get a quick overview of system activity and resource utilization. I also like the
procstool as an alternative tops. - Shells. As part of your Bash journey, I’d also check out shells like fish, zsh, and nushell.
- Package Management. I’m not very familiar with Bazzite’s package manager. It’s an immutable distro, so that will make a difference. Read the bazzite docs for this I guess. You’ll probably need to learn about flatpaks. I’d recommend checking out Nix if you want to try something different. I also quite enjoyed Arch’s pacman if you’re willing to try a new distro like CachyOS or EndeavourOS.
- Dotfile management. I recommend learning some basic Git or Jujutsu (jj) and managing your configuration files in a git repository. You can also do this with Nix via Home Manager.
- Desktop Environment. I don’t know which variant of Bazzite you chose, but it’s probably a complete DE out of the box. Just know that you can customize your DE quite a bit. I personally enjoy tiling window managers; you might want to check those out.
- Filesystems. In Unix, everything is a “file”. Explore the directory layout. Maybe learn about the FHS (filesystem hierarchy standard) and XDG. Learn how file permissions and ownership work. Learn about disk encryption with LUKS. Learn about GPT partitioning and EFI boot partitions. If you want to manage a filesystem spanning many storage devices, I highly recommend looking into ZFS. You might also want to set up some kind of file service like NFS or something with a web client like copyparty or dufs. Try out the
tatterdemalion@programming.devto
Programmer Humor@programming.dev•What are some of the worst code you have seen in a production environment?
21·2 months agoI’ll consider myself lucky that the worst I’ve had to deal with was a 8K LOC C file that implemented image processing for a cancer detection algorithm. Nothing terribly tricky but just poorly organized. Almost no documentation at all. The only test was running this code against a data set of patient images and eyeballing the output. No version control other than cloning the project onto their NAS and naming it “v2” etc.
Research code can be really scary.
tatterdemalion@programming.devto
Programmer Humor@programming.dev•Well, hello waterfox and librewolf
71·3 months agoHa. I’d expect nothing less from Theo.
tatterdemalion@programming.devto
Programmer Humor@programming.dev•Well, hello waterfox and librewolf
692·3 months agoDidn’t Firefox just release a new feature that prevents fingerprinting? Hard to get a reading on Mozilla these days.
I think you’re right. An
UPDATEwould fail, but not anINSERT.

RedoxOS