em-dash's recent activity

  1. Comment on Life altering PostgreSQL patterns in ~comp

    em-dash
    Link Parent
    The numbers had to match numbers in the corresponding code-enum, so no, you really did need to insert them with explicit IDs. (Epilogue: eventually I did just drop the tables, after inventing a...

    The numbers had to match numbers in the corresponding code-enum, so no, you really did need to insert them with explicit IDs.

    (Epilogue: eventually I did just drop the tables, after inventing a mildly terrifying pipeline to move all the extra metadata they had accumulated into constants in the right places in the codebase. It involved SQL that generated vim commands which were then pasted into a terminal with the right file open in vim (this was before bracketed paste was widely supported). I do not remember why "just regex-replace a CSV dump into an array of structs" wasn't an option, but I'm pretty sure I did it with vim specifically because I thought it was funny.)

    1 vote
  2. Comment on Life altering PostgreSQL patterns in ~comp

    em-dash
    Link Parent
    Amusingly, with one particularly memorable pair of enum tables (in the same product) I had the opposite experience because of how badly they were handled: they had serial integer keys and people...

    helps insure data integrity and notification across teams

    Amusingly, with one particularly memorable pair of enum tables (in the same product) I had the opposite experience because of how badly they were handled: they had serial integer keys and people kept adding values to the end and using the same number as each other, and that caused Weird and Exciting Results.

    I finally "solved" this by writing the current maximum value for each in dry erase marker on the window next to my desk, and declaring that anyone wanting to add a new value must first physically walk over and increment the appropriate value and use the new value as the key. It's a mutex enforced by physics!

    3 votes
  3. Comment on Introductions | March 2025 in ~talk

    em-dash
    Link Parent
    :D "Insectweight" is a collective term covering antweight (1lb/454g weight limit) and beetleweight (3lb/1360g). But I am totally adding "aphid-hunting robot swarm" to my project list.

    :D
    "Insectweight" is a collective term covering antweight (1lb/454g weight limit) and beetleweight (3lb/1360g).
    But I am totally adding "aphid-hunting robot swarm" to my project list.

    1 vote
  4. Comment on Life altering PostgreSQL patterns in ~comp

    em-dash
    Link Parent
    I hate enum tables so much. They sound so tempting and yet they're so bad in practice. The thing about enum values is they usually correspond to enum values in your codebase (otherwise they...

    I hate enum tables so much. They sound so tempting and yet they're so bad in practice.

    The thing about enum values is they usually correspond to enum values in your codebase (otherwise they wouldn't really be enums, just data). Now instead of your application just requiring a specific schema version to work, it requires a specific schema and data version. This isn't better, it's just marginally different to migrate and more tempting to do it the wrong way.

    At least this implementation uses the text representation as the key. Most people will autopilot add an integer or UUID key and now you have to make sure that mapping is consistent across environments.

    4 votes
  5. Comment on Introductions | March 2025 in ~talk

    em-dash
    Link Parent
    Oh hey, that's also why I'm in Ohio, except mine is just finishing up her PhD. We're both excited to leave; this was only ever intended as temporary. I was talking to the friend from this story...

    moved to Ohio after graduating college for my wife’s PhD program

    Oh hey, that's also why I'm in Ohio, except mine is just finishing up her PhD. We're both excited to leave; this was only ever intended as temporary.

    I was talking to the friend from this story the other day about the butterfly effect, and joked that while I hold him personally responsible for my exile from Florida, I do at least have the advantage of no longer being in Florida.

    3 votes
  6. Comment on Introductions | March 2025 in ~talk

    em-dash
    Link Parent
    What's your favorite Chinese dish that most westerners wouldn't be familiar with?

    What's your favorite Chinese dish that most westerners wouldn't be familiar with?

    1 vote
  7. Comment on Introductions | March 2025 in ~talk

    em-dash
    Link
    How long have you been on Tildes? How did you find out about us? Since June 2023. I think this was during one of the people-leaving-reddit waves, but I had already been off of reddit for a year or...

    How long have you been on Tildes? How did you find out about us?

    Since June 2023. I think this was during one of the people-leaving-reddit waves, but I had already been off of reddit for a year or so before that. I don't remember how I wound up here, it kind of just happened.

    How did you choose your username?

    An em dash is a kind of punctuation, and Em is a shortened form of Emily. I use both of those names and enjoy puns and word-smashes.

    What are your interests?

    I like weird technology things, making things, and cats.

    A/S/L (age/(gender|pronouns|identifier)/location)

    33/(transfem, she/they)/Ohio, but expecting to be cured of that particular affliction later this year.

    What do you do? This could be in your spare time, for work, your passions.

    My job title is Software Engineer, though IMO that sounds a bit over-the-top and I usually go with "programmer" or "computer toucher" unless I'm trying to sound important. Most of my hobbies are extending the computer-touching out in directions that are more fun but harder to convince people to pay me for: current projects I have going on include modding buttons onto a music player, designing some custom tiny motor controllers for insectweight combat robots, a tool-assisted speedrun collaboration project with a friend, and the early planning stages of like twelve other things that may or may not ever get made.

    I also do gardening and woodworking, though haven't done much of either recently, and I picked up electric guitar again this year after not playing for 5ish years.

    Also a lot of my time/brain cycles recently have been spent pondering various aspects of moving and house-building.

    Do you want other users to PM/DM you from this thread?

    Sure, why not?

    Give us a fun fact (or a link!)! If there is anything to know about tilderinos, it's that we value knowledge sharing!

    Plants don't actually "grow toward the sun". Light makes them grow less, but the effect is localized, so if you have a bit of stem going sideways and light is only hitting the top half, the bottom half will grow faster than the top half. It's the same sort of effect as a bimetallic strip, but less metallic and more plantic.

    6 votes
  8. Comment on Google’s Taara is launching a new chip to deliver high-speed Internet with light in ~tech

    em-dash
    Link Parent
    Looks like near infrared, according to this image from this post.

    Looks like near infrared, according to this image from this post.

    4 votes
  9. Comment on My sixteen-month theanine self-experiment in ~health

    em-dash
    Link Parent
    I don't know, I could go either way on this. It's obviously good when you have objective numbers to do analysis on. That makes your data more reliable and reproducible, because you can specify how...

    I don't know, I could go either way on this.

    It's obviously good when you have objective numbers to do analysis on. That makes your data more reliable and reproducible, because you can specify how you measured things and other people can both try the same measurements and point out flaws in your methods, which is kind of science's whole thing.

    But also, sometimes the dependent variable you want to measure really is subjective. If the hypothesis you are trying to test is "doing this makes me subjectively feel a certain way", looking for objective proxy variables that are probably correlated with the subjective feeling via a complex series of biochemistry causations is just adding more uncertainty for the feeling of objectivity, when you could just measure the subjective feeling that you actually wanted to measure in the first place.

    6 votes
  10. Comment on The future is Niri in ~comp

    em-dash
    Link Parent
    I'm mildly fascinated by the difference between us here. This is a thing I have never wanted to do, and the idea of it is horrifying to me, like if you tried organizing an entire house by moving...

    makes some things like moving all app windows to a certain workspace or minimizing/restoring or hiding/showing them all at once very easy

    I'm mildly fascinated by the difference between us here. This is a thing I have never wanted to do, and the idea of it is horrifying to me, like if you tried organizing an entire house by moving objects into rooms based solely on their color, and then I find one of my cats in an oddly dark room, curled up sleeping in a bowl of beans because they're both black. It's just not the right dimension of grouping for the way I work.

    Workspaces are project/task containers for me. It's common for me to have a terminal or two, an IDE, and a few kicad windows open on one workspace, then just leave them there for days at a time while I have more instances of the same applications open on another workspace working on a different project.

    3 votes
  11. Comment on The future is Niri in ~comp

    em-dash
    Link Parent
    During my brief time on a Macbook, I made an honest attempt to configure the machine to fit my needs, and indeed found that during my adventures in key binding. To be more specific, my main...

    During my brief time on a Macbook, I made an honest attempt to configure the machine to fit my needs, and indeed found that during my adventures in key binding. To be more specific, my main problems are that there is no dedicated namespace for user keybindings, and that there is effectively no support for (custom) global keybindings.

    On both i3 and niri, I can easily bind whatever I want to super+something, and be reasonably confident that it will never conflict with anything, because approximately nothing on Linux ever defaults to using the super key. If it does, the binding I set takes precedence. For example, I had this in my i3 config:

    bindsym --release $win+T exec kitty

    which I straightforwardly ported to this in niri:

    Super+t { spawn "kitty"; }

    On macOS, the active application's bindings take precedence, and so even if I bind super/cmd+T to open a terminal*, there's a pretty good chance I'll hit that and it'll do some completely unrelated action that whatever has focus has decided to bind that to. If I want a global hotkey, I not only have to bind it globally, but unbind it from every other application I use.

    * This is itself more involved to an almost comical level on macOS, due in part to its "there are no multiple terminals, there is one instance of terminal with many windows" philosophy of application management, which also does not match how I think about running applications. There are just too many mismatches like this between how I want to work with my computer and how macOS wants to work for me to be happy with it.

    2 votes
  12. Comment on The future is Niri in ~comp

    em-dash
    Link
    I installed it this evening (switching from i3). It's... actually pretty nice, mostly? Keybindings are fully configurable, which should be table stakes for software but often isn't (this is like...

    I installed it this evening (switching from i3). It's... actually pretty nice, mostly?

    Keybindings are fully configurable, which should be table stakes for software but often isn't (this is like half of why I can't use macOS). I ported most of my i3 bindings over, dropping a few that didn't make sense and that I rarely used anyway.

    I quite like the way it works conceptually. It's kind of an optimization on how I use i3 most of the time, where I'll run things either in fullscreen tabbed, or a single left-right split where I break one window out to the right and leave the rest in a tab stack on the left. I am having a bit of an object permanence problem occasionally, because I have no titlebars or other hints for what other windows are there past the screen edges. I'm going to see if I can get waybar to show all the windows on the current workspace somewhere; so far I've only found ways to do "currently focused window" and "all windows from all workspaces".

    Builtin screenshot support, surprisingly, is what convinced me to try it. It just works, and it works well. Last time I tried switching to Wayland, that was one of the major issues I had. On X, I just ran Spectacle, the KDE screenshot tool. On sway, the standard way is to chain a bunch of external tools together and pray. Building it into the compositor is just... an extremely obvious solution in retrospect, if you're not attached to the "nothing is allowed to have any feature that can possibly be a separate program" philosophy that plagues that particular area of software.

    I am not particularly fond of the way it handles workspace numbers. In i3, I will often throw things on a specific numbered workspace and expect them to stay there; I use workspaces 9-10 as pseudo-scratchpads and 1 just for a web browser. This doesn't work in niri because it renumbers workspaces all the time and you can't have a workspace 10 if you don't have 9 other active workspaces before it. But also, this is a bit of an instinctive "how dare you break my workflow that I built around the limitations of a different thing" reaction and I don't know that it'll be a real problem once I get used to it.

    4 votes
  13. Comment on RMK (Rust keyboard firmware) in ~comp

    em-dash
    Link Parent
    Using anything remotely fancy in an embedded context is a trip for me. I usually write C-flavored C++ there. Sometimes I get really wild and overload a function. I've been contributing to a...

    Using anything remotely fancy in an embedded context is a trip for me. I usually write C-flavored C++ there. Sometimes I get really wild and overload a function.

    I've been contributing to a project recently that targets esp32 and uses most of the STL. std::string and std::vector on a microcontroller! It's simultaneously so convenient compared to what I'm used to, and feels so wrong.

    1 vote
  14. Comment on RMK (Rust keyboard firmware) in ~comp

    em-dash
    Link
    Ooh, this is neat. I'll have to play with it later to form an opinion on it, but I am definitely interested. QMK is a bit of a mess to work with once you dig deep enough into it (i.e. doing...

    Ooh, this is neat. I'll have to play with it later to form an opinion on it, but I am definitely interested.

    QMK is a bit of a mess to work with once you dig deep enough into it (i.e. doing anything fancier than customizing an existing board), but the other alternatives I'm aware of have architectural decisions that don't make sense for what I do (ZMK goes hard on wireless-all-the-things, KMK wants a big enough chip to run Python).

    Also through this I learned Embassy is a thing now, and that it supports the stm32c0, which I codegen'd a weird custom HAL for after using it in a project and only realizing later I couldn't use my usual HAL (libopencm3) with it. I might be rewriting a thing in Rust later.

    2 votes
  15. Comment on A Reykjavík building that houses a penis museum and an H&M is also the virtual home to an array of perpetrators of identity theft, ransomware and disinformation in ~tech

    em-dash
    Link Parent
    Yes (nothing stops you from running a website without a domain name at all), but I don't think most people know the difference. This very article calls Namecheap a "provider of websites", which......

    Yes (nothing stops you from running a website without a domain name at all), but I don't think most people know the difference.

    This very article calls Namecheap a "provider of websites", which... doesn't mean anything. It might mean a web host in another context, but it's clear from the rest of the article that they don't actually know what a web host is.

    10 votes
  16. Comment on Proton exits Mastodon with updated account bio pointing to Reddit in ~tech

    em-dash
    Link Parent
    Honestly, I'm happy to see them go, for reasons entirely unrelated to Proton specifically. Corporate PR accounts are one of the things that ruin social media, slowly rotting it into an advertising...

    I'm not too concerned with a company's PR account leaving the weird and nerdy world of ActivityPub federation.

    Honestly, I'm happy to see them go, for reasons entirely unrelated to Proton specifically. Corporate PR accounts are one of the things that ruin social media, slowly rotting it into an advertising platform as more of the posts are companies trying to sell you things and less are people talking about interesting things. That it largely hasn't caught on among companies, and is still mostly social media, is one of the main reasons I use it.

    Facebook was good back in 200x too, back when the only thing you saw there was posts from your friends.

    25 votes
  17. Comment on What is your strangely specific phobia? in ~talk

    em-dash
    Link Parent
    A day and a half later (based on timestamps of my participation elsewhere in this thread), I found this open in a tab on my phone, having clicked it to read later and then forgotten having done so...

    A day and a half later (based on timestamps of my participation elsewhere in this thread), I found this open in a tab on my phone, having clicked it to read later and then forgotten having done so or where I'd followed a link from. I only figured it out because I was back in this thread to reply to someone.

    I submit that this is the correct way to read SCP articles.

  18. Comment on What is your strangely specific phobia? in ~talk

    em-dash
    (edited )
    Link Parent
    Yeah, logically I know how unlikely it is. But I also know no manufacturing process has 100% perfect yield, and that sometimes things that appear to work perfectly at first have issues that appear...

    Yeah, logically I know how unlikely it is.

    But I also know no manufacturing process has 100% perfect yield, and that sometimes things that appear to work perfectly at first have issues that appear later. I don't want to be the lucky owner of the one microwave in the history of microwaves where all the switches randomly happen to fail closed instead of open on the 48621793th cycle, when there's a "make it stop before opening the door" button right there next to your hand that you can easily press first. Failsafes are great, but why rely on them when you don't need to?

    I think this is the sort of phobia I'm most prone to: the kind where the risk is extremely unlikely but extremely bad if it does happen, but where avoiding it entirely is trivial. Like, I'm also scared of horses, but it's trivial to just... not wind up in situations where a horse can get spooked and kill me. If my living situation was such that I regularly encountered horses, I'd be a lot more motivated to get over it so I don't have to keep running away from them.

    1 vote
  19. Comment on Removing Jeff Bezos from my bed in ~tech

    em-dash
    Link Parent
    Ah, I see. Sorry for infodumping a bunch of stuff you likely already knew, then :) Have you considered crowdfunding? CrowdSupply would love this sort of thing, and will give advice to people who...

    Ah, I see. Sorry for infodumping a bunch of stuff you likely already knew, then :)

    Have you considered crowdfunding? CrowdSupply would love this sort of thing, and will give advice to people who have the skills to build a prototype and just need help scaling that up. (I haven't done it because of personal situation not being optimal for it right now, but I've talked with them a bit about projects I'd like to do it for in the future.)

    But yeah, for specifically vacuums, I kind of doubt mostly-built-but-without-software vacuums are a thing, except maybe if you can convince a factory in China that's already making similar vacuums to sell them to you. If you don't want to build one from scratch you might have better luck sourcing a big enough batch of some existing vacuum to get bulk pricing, and ripping the firmware and maybe electronics out. Or maybe just sell it as a modchip/replacement board sort of thing and make people source their own vacuums, if you're okay with limiting it to nerds.

    2 votes
  20. Comment on Removing Jeff Bezos from my bed in ~tech

    em-dash
    Link Parent
    There's a quiet ecosystem of things for this hiding behind the shitshow of cheap internet-based smart devices. One way is to use a protocol that isn't wifi at all, so it's firewalled by default...

    even if I did magically get over the hurdles of figuring out the how

    There's a quiet ecosystem of things for this hiding behind the shitshow of cheap internet-based smart devices.

    One way is to use a protocol that isn't wifi at all, so it's firewalled by default unless you take the explicit step of setting up something to forward it to the internet. Z-wave is the one I've standardized on in my house; Zigbee is the other major one. Sometimes it's hard to find these in the specific commercial product that you want, and if it does exist it's probably more expensive than the internet-based equivalent, but it's widely available for things like simple sensors and switches, so that's most of what I use it for.

    The other is wifi devices that just don't try to hit the internet. This is totally technically possible, the market forces just aren't there to push companies to promise that, or punish companies who break that promise. Mostly this is nerds setting up things like ESPHome and Tasmota, which both target ESP32 and ESP8266, the most common families of wifi modules used in smart devices.

    For devices targeting non-nerds (who will want to gradually migrate from security-shitshow wifi and won't already have a zwave network set up), wifi-but-offline is probably the way to go. I'm not aware of any companies doing this but I also haven't really looked in a while.

    3 votes