• 0 Posts
  • 407 Comments
Joined 2 years ago
cake
Cake day: November 13th, 2023

help-circle






  • I agree. To me, this is just an amusing fashion choice. If you’re gonna need the gear, so you may as well have fun with it.

    Honestly, when it comes to any accessory or tool, it’s going to have an aesthetic. Who cares what that is (as long as it’s not offensive). There’s also a tendency to consider terms like ‘fashion’ to be emasculating, but that’s what this is: fashion. Plus, kiddo isn’t going to care about logos and any gender representation; the only shit they’re giving is in their pants.

    Other fashion choices for diaper bags that could be explored:

    • Metal (leather/pleather, spikes, denim, band patches)
    • Goth (like above, but with less denim and more ankhs and crosses)
    • Gamer (cosplay appropriate bags, pokemon that’s also a bag, D&D mimic on a shoulder strap)
    • Sports (tons of practical and team-branded merch options here)
    • Office (suit material, inoffensive beige, briefcase handles and leather)
    • Handyman/tradesman (toolbag or toolbelt aesthetic, tool manufacturer branding)
    • EMT/firefighter (first-aid compartment, red/white aesthetic, cheeky “diaper emergency kit” on outside)
    • Outdoorsman (gore-tex, tent material, typical REI brands, lots of straps for different carry options)

    Edit: not a dad. Some of these may already exist. Point being: it’s all a matter of taste.







  • Kind of. They do center on code generation, at the end of the day. That’s where the similarities end. You can’t insert macros into your code arbitrarily, nor can you generate arbitrary text as an output. Rust macros take parsed tokens as input, and generated (valid) code as output. They must also be used as annotations or similar to function calls, depending on how they’re written. The limitations can be frustrating at times, but you also never have to deal with brain-breaking #define shenanigans either.

    That said, I’ve seen some brilliant stuff. A useful pattern is to have a macro span a swath of code, where the macro adds new/additional capabilities to vanilla Rust code. For example, here’s a parser expression grammar (PEG) implemented that way: https://github.com/kevinmehall/rust-peg



  • I used to struggle with this, until I realized what’s really going on. To do conventional web development, you have to download a zillion node modules so you can:

    • Build one or more “transpilers” (e.g. Typescript, Sass support, JSX)
    • Build linters and other SAST/DAST tooling
    • Build packaging tools, to bundle, tree-shake, and minify your code
    • Use shims/glue to hold all that together
    • Use libraries that support the end product (e.g. React)
    • Furnish multiple versions of dependencies in order for each tool to have its own (stable) graph

    All this dwarfs any code you’re going to write by multiple orders of magnitude. I once had a node_modules tree that clocked in at over 1.5GB of sourcecode. What I was writing would have fit on a floppy-disk.

    That said, it’s kind of insane. The problem is that there’s no binary releases, nor fully-vendored/bundled packages. The entire toolchain source, except nodejs and npm, is downloaded in its entirety, on every such project you run.

    In contrast, if you made C++ or Rust developers rebuild their entire toolchain from source on every project, they’d riot. Or, they would re-invent binary releases that weekend.



  • Rust […] could use a higher level scripting language, or integrate an existing one, I guess.

    One approach is to use more macros. These are still rooted in the core Rust language, so they give up none of the compile-time checks required for stability. The tradeoff is more complex debugging, as it’s tough to implement a macro without side effects and enough compile-time feedback that you’d expect from a DSL.

    Another is to, as you suggest, embed something. For example, Rust has Lua bindings. One could also turn things inside out and refactor the rust program (or large portions of it) as a Python module.


  • I was convinced of this years ago. This was as true now as ever, with the rate of compromised, a-moral behavior being well above chance, it defies any consideration of mere coincidence. The idea of a political party not conducting background checks on candidates it endorses would be lunacy, so we’re left to conclude that they’re either a very forgiving bunch, or prefer dirtbags they can control.

    Where things get interesting is that it may not work forever. Epstein thought that manufacturing dirt on the rich and powerful was enough to keep his operation going, and save his neck, all at the same time. That didn’t exactly pan out for him. This makes me wonder if such a scheme really is tenable when playing at that power level.


  • It’s been a hot minute, but here’s what I recall.

    Take a look under /etc/systemd/system/ This is a good place to put custom system files.

    You’ll want to add your new foobar.service file here, then run systemctl daemon-reload or systemctl reload foobar to make systemd load the new config file. Then you can run systemctl start foobar and so on.

    The rest is up to you and the published docs for the system file itself. My recommendation is to also try to understand daemons you may already use like nginx, apache, postgresql, etc. Their configs can be found by first running systemctl status <servicename> and to look at the Loaded: line. Most of the packaged stuff is hanging out under /lib/systemd/system.