• Activity
  • Votes
  • Comments
  • New
  • All activity
    1. What are your favorite any% speedrun videos?

      I like watching speedrunning videos, especially ones where they break the game in really interesting and novel ways. Every now and then when I'm bored I search "any% speedrun" on YouTube, but......

      I like watching speedrunning videos, especially ones where they break the game in really interesting and novel ways. Every now and then when I'm bored I search "any% speedrun" on YouTube, but... the search results feel gamed by clickbaity Top 10 videos, Soulslike games, and the latest hyped up title of the month.

      So I thought I'd ask if you guys have any videos to share. Maybe even like, favorite GDQ videos or favorite niche games you like. Stuff like that?

      Here's what I've got:

      • Sethbling's "4 Different Mario Credits Warps in Under 15 Minutes" -- Specifically for the Super Mario Land 2 speedrun. I really love how the game's code and RAM gets interpreted as level data, and he has to navigate the garbage sprites to get to a point where it will trigger a debug flag to load the credits.
      • Luigi's Mansion any%: Something about the OOB route here is so spooky and interesting to me. It's a 3D game, but fixed perspective, so you don't get the freedom of movement you would in a game like Super Mario 64. That makes any OOB tricks really funky, with Luigi skewing oddly and going off camera in a way that forces the runner to intuit and feel out where to go. It's neat!
      12 votes
    2. Is it just me or did the edgy socialism that blew up during the pandemic kind of die down?

      This might just be because of the change I’ve made in my online behavior, but it’s something I’ve been thinking about for a while. I’ve talked many many times about my long stint on Twitter....

      This might just be because of the change I’ve made in my online behavior, but it’s something I’ve been thinking about for a while.

      I’ve talked many many times about my long stint on Twitter. Specifically the brief stint where I was highly active on leftist twitter from early to mid 2020 (where I managed to get around two thousand followers which seems crazy to me now considering I’m just a random guy). Back then tensions were high. People were getting laid off, high profile civil rights protests were happening, and there was nothing much to do but to be online. Personally my internship I had lined up during the summer (since I was just about to graduate college) ended up getting cancelled which led me to a period of depression. It’s also the reason I started spending so much time on Twitter and what led me to drink heavily and gain a bunch of weight. I imagine a lot of people who became extremely online during this period were in similar boats.

      Anyways, I made a couple of online friends during this time period. It initially started as “Bernie” or “Rose” twitter. We were all pretty normal social democrats supporting Sanders for the presidency (which before Super Tuesday seemed like a big possibility). And then when it became clear that Biden would be the democratic nominee, a lot of people ended up going to the dark side. They started using hammer and sickle emojis on their display name. Started talking about how they were going to read Marx and Lenin (but they never did). They started making memes about how awesome Castro and Mao were. Bios went from “BernieOrBust” to “Marixst-Leninist-Maoist.”

      A lot of talk started happening of “grow your own garden the end of the world is near” and also “arm yourselves comrades the class war is among us.” Somehow everyone became very fond of the second amendment. There were twitter accounts LARPing about joining the Socialist Rifle Association, e-girls were taking provocative pictures of themselves posing with automatic rifles in front of a Soviet flag. It became a whole thing. Some of this online behavior was covered in articles like The Cut's Before We Make Out, Wanna Dismantle Capitalism?

      I ended up disconnecting from all this around September/October of 2020. I actually ended up voting for Biden in November which I wasn’t planning on when I was addicted to Twitter. I go a little bit into this detox here.

      Fast forward to this year. A wave of mass shootings happen. Something that used to be a normal thing pre-pandemic but which stopped/slowed down thanks to lockdowns and schools remaining closed. With all of this in the news again, I start thinking back to the friends I used to have. And their gun loving, revolutionary wanting, “libs get the bullet too” type of tweets that they were writing back in 2020. I don’t remember most of them let alone their names. But I do remember a few.

      I look them up. And there are dozens of tweets about the need for gun control. They’re talking about how nobody actually needs guns, and all of the typical liberal arguments in favor of gun control. A stark contrast to what they were saying before. They still have “socialist” in their display names and bios, though from the retweets I saw of them they were no longer following the “Mao is cool” type of people. For lack of a better term, they calmed down. They don’t long for a revolution to happen. They don’t want blood on the streets.

      I think what had happened is that they all forgot what mass shootings were. How destructive they were. And now that society is mostly back to normal, including mass shootings, they remembered what that was like.

      Now this is too niche of a corner on twitter to talk about in terms of larger online behavior. But back in 2020, I did predict that when Biden became president a lot of these online socialists would retreat into the liberals that they used to be. And it seems like that has happened, at least to some extent.

      I mean, I’m glad for them. They seem more balanced, and it’s good that they eventually found themselves like I did (even if I did it a little quicker than they did). But it is still an interesting progression that a lot of my former online friends took.

      12 votes
    3. Flags are not languages

      Ten years ago, I got my first job in the field of languages. I was a "translation engineer", working on tooling for translators. I very quickly was told to never represent a language by a flag....

      Ten years ago, I got my first job in the field of languages. I was a "translation engineer", working on tooling for translators. I very quickly was told to never represent a language by a flag.

      I'm sharing this here because this is something you either know, or don't, and many people don't.
      Why is simple: languages do not map 1:1 to a country.

      • A country can have multiple languages
      • A language can be spoken in multiple countries
      • A language can exist without being spoken in any country
      • A country can exist without an officially recognised language

      Today as I sit here, I'm at a language meetup where language tables each have a flag on them. Well, none of us at the Russian table are comfortable with that Russian flag, so we just turn it around and write "RU" on the other side.

      Wikipedia has an article about this: https://en.wikipedia.org/wiki/Flag_icons_for_languages

      So how are you supposed to do this correctly ? ISO 639 has a list of 2-letter and 3-letter codes for languages:
      https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes

      • You want to represent a language, use ISO 639-1: a two letter code. For example, "English" is "en" and "French" is "fr".
      • You want to represent a language, but wish for a larger code for some reason (such as disambiguation with state or country codes)? You can use ISO 639-2/T: 3-letter codes for the languages. For example,
        "English" is "eng" and "French" is "fra".
      • You want to represent a language, as spoken in a particular country? ISO 639 and ISO 3166 work together. You can represent "English as spoken in England" as "en_GB", "American English" as "en_US", "Canadian French" as "fr_CA", and so on. (This is a very flexible standard, allowing for a lot of variations and a topic for a more motivated person than me. Also see: https://en.wikipedia.org/wiki/IETF_language_tag)
      • You want to represent the abstract notion of translations or internationalization, such as for an icon to change the language? This wikipedia article may help. The two most common variations I've seen are an icon that has "A" and "文" together, or some kind of globe icon.
      • You want to represent a currency? Use ISO 4217 currency codes: "USD" for US Dollar, etc. Some countries have multiple currencies, don't use a flag without disambiguating somewhere.
      • You want to represent a country? You can use a flag, I don't care. But even then, ISO 3166 will probably be less political :)
      27 votes
    4. What's a game that you wish you could play again for the first time? Why?

      Going off of my recent Outer Wilds thread (spoiler warning on that topic), what are some games that you wish you could play again for the first time? What about the game makes you feel that way?...

      Going off of my recent Outer Wilds thread (spoiler warning on that topic), what are some games that you wish you could play again for the first time? What about the game makes you feel that way?

      Feel free to talk about spoilers, but please flag them! The easiest way is to drop them in a details block. Markup below in case anyone needs to copy/paste:

      <details>
      <summary>Spoilers</summary>
      
      Spoilers go here!
      </details>
      
      10 votes
    5. What are you doing for Pride this week? (7-13 June)

      Pride month has already started, so - as per the title - what are you doing for Pride this week? Are there any cool events where you live? Is the encroaching summer making it hard to choose...

      Pride month has already started, so - as per the title - what are you doing for Pride this week?

      Are there any cool events where you live? Is the encroaching summer making it hard to choose between hugging the AC and ironing your flags? Are you still in the closet, and would you like to vent about it?

      10 votes
    6. Job hunts after a toxic work experience

      I terminated my position over 4 months ago and I'm still not able to apply for jobs. I'm frustrated with my inability to move on from the previous toxic work environments. My background is in a...

      I terminated my position over 4 months ago and I'm still not able to apply for jobs. I'm frustrated with my inability to move on from the previous toxic work environments. My background is in a male dominated field and there was always something either insensitive, sexist or racist said in all my previous workplaces. I feel, I know I'm going to be met with some sort of comment in my next work place and I no longer want to put myself in those situations anymore. I don't know how I'll react, I feel like I may explode if I hear another ignorant phrase.

      I want to be able to make money. People say I must not have liked what I did very much if I wasn't able to put up with the comments. Other people say that that's just how the world is, "get used to it!" I've also heard that I'm just going to have to wait for change because drastic/fast pace change causes recoil. All of these comments literally tell me to suck it up and allow the same rhetoric to propagate. And, of course, all of this has been told to me by white men, those who aren't effected by the comments said to me.

      Things that have happened to me or that were said to me:

      • Smile more
      • I'm too soft spoken/nice
      • I'm too aggressive
      • "Do you want to fix your hair?"
      • A project manager bought me hair product, I didn't ask. I have curly hair and it took me a long time to love my curls, but it's seen as "unprofessional"
      • A Director was staring at my hair throughout an entire interview
      • "I'll put you up there" when the males were talking about strip clubs
      • "Why are women crazy?"
      • I've been kissed on my face and told "if only I met you before my wife"... never had a fucking conversation outside work with this person. I didn't even speak to him more than once a week!
      • "We were surprised that you and Mohammad spoke English". Both me and Mohammad were born and raised in the United States. When I responded with "Why did you guys think that?" they conveniently stumbled and changed the subject.
        ... Many more things happened, but require too much context.

      I just don't get it. Am I suppose to let ALL these things slide? Am I suppose to hold empathy for people who don't have empathy for me? Who don't empathize with me and how what they have said may have made me feel? Should I forgive people who would rather hide the fact that they said something rather than apologize? (And yes, I filed reports for some of these comments/experiences and the rhetoric was "She got X fired", not "X's own behavior got them fired".)

      And more importantly, how do I move on from this knowing that it's going to happen again? The last job had the most amount of sexism in it. The thing about sexism (and racism) is that it's meant to make you feel devalued, and shocker, I felt devalued. It took me so long to gain my self confidence back. And I want so badly to protect myself. I never want to feel those feelings again. But the world is still sexist and racist and homophobic and xenophobic... all the phobics. And how do I tell my next work place that the reason why I left and why I took a break from working was to deal with the emotional repercussions from a very toxic/sexist work environment (when workplaces see whistle blowers as a red flag)? And how to I prepare my little sister who is in college studying a male dominated field knowing that she'll have to deal with the same things I went through?

      It's been 4 months and I'm still angry and still jobless. I've grown to hate social interactions for fear of someone saying some ignorant shit. I've grown a distrust of all people. I hate how much this thing has affected me, how belittled I feel and how I can't move on from this. I feel emotionally paralyzed and money is running out and jobs are hard to come by especially because I'm not white nor am I a male and my hair isn't straight Billie Holiday - I Love My Man.

      I'm tired of confusing people with how my looks don't match my attitude/personality that they've been conditionally taught to think it was like. I'm tired of confusing people with how unashamed I am of my existence.

      24 votes
    7. Suggestion: Having an @ help for users

      I don't think I saw a feature like this in the gitLab, apologies if it's already in the works or been suggested. The gist of it would be to have an @/help ping so if someone needs an edit to a...

      I don't think I saw a feature like this in the gitLab, apologies if it's already in the works or been suggested.

      The gist of it would be to have an @/help ping so if someone needs an edit to a title or tags or something, they can use that and it'd flag the topic or somehow show those who have the permissions that this thread needs attention. This might be helpful for users (like moi) who might not know the people who CAN do this already off the top of their head, beyond Deimos.

      Let me know your thoughts or if this could be a useful feature for anyone else.

      15 votes
    8. Tildes is pushing out the minority voice

      Last week I woke up to yet another PM from someone I've come to admire from afar on tildes. This was a user I'd seen many times on Tildes, bringing with them a unique and powerful voice. This...

      Last week I woke up to yet another PM from someone I've come to admire from afar on tildes. This was a user I'd seen many times on Tildes, bringing with them a unique and powerful voice. This person was a minority. They brought a voice to the table that was like a breath of fresh air - I'd frequently see them enter threads dominated by a single opinion and make everyone challenge their assumptions. They would enter and offer their shoes to anyone who'd like to try them on and get a glimpse into how the world might work for them, should they be brave enough to walk a mile or two.

      This is not the first PM I've received from someone who decided this website had become too troublesome to continue participating and it's likely not the last I will see. While it is heartbreaking to see them go, it is equally heartbreaking to me that the reason they are going is often not because people are trying to push them away. By far and large, I see a majority of tildes users actively participating in discussions with good faith. By the results of the last census, increasing diversity was of importance to the majority of users and I do not think they were free-text typing that in without good cause.

      This post is one that I've been contemplating in the back of my mind for a very long time now. It first really occurred to me nearly a year ago when a fairly well known person of minority status got banned for being too confrontational and aggressive to the kind of voice they didn't want to see on Tildes. I wasn't sure how to address it at the time, and I wasn't entirely certain it would be a problem, but the year since this post I've become hyper aware to its existence in a way I wasn't previously. In fact, I've had a bit of this conversation on more than one outlet on the internet already, because my recognition of this behavior has had me upset many times since. To this extent, I thank that user, because it truly did open my eyes to a behavior which I believe is self-sabotaging, but often genuine in nature.

      I believe the simplest way to explain what is happening is through the law of large numbers. While not everyone responded to the 2020 Tildes Census (in fact I would imagine maybe 10% of us did), I'm going to use it as a model to touch on these issues. There were a total of 350 responses to the survey. Of this 86% were male, 67% were heterosexual, 75% were atheist or agnostic (50, 25 respectively), 52% were from the US, and 47% identified as white or Caucasian. I point all of this out to say that as a population we tend to trend towards a particular kind of individual. To be clear, this isn't necessarily bad - we are still quite a small website and we need to start somewhere with a base we know how to pull from.

      But this does present a unique problem when it comes to interaction. Let's imagine for a second that 1 in 100 individuals has some sort of problematic behavior on Tildes that manages to find its way into discussion. This behavior might be that they have a strong intolerant opinion on a specific subject but manage to obscure it enough to get past the intolerance detecting capabilities of others. Or perhaps their views are not intolerant, but they simply possess a strong opinion on how something should be worded or an aversion to a particular kind of venting. Because I don't want to throw anyone under the bus I'm going to pull from an upsetting behavior I used to have in my childhood - I couldn't shut my mouth when people would bring up that women make '70 cents on the dollar'.

      It's very hard for me to look back and definitively say it was one shaping experience that led me to behave like that. If I had to attribute this shameful behavior, I think there's a few major players. First off, I grew up in an upper middle class family who happened to be located in an area that was very homogeneous. I went to school with the children of tech millionaires, many of whom were white and quite privileged. I think there were a grand total of 4 people of color in my middle school. Things got a lot better once I had made it to high school (by numbers, whites were in the minority), but there's a subtle cultural indoctrination that happens through absorbing what you hear from parents and teachers at a young age. As a young child, I also latched on to early internet behavior. People who were pedantic about grammar, who could use logic effectively, and otherwise followed the rules that rich white people before them set up as the 'correct' way to do discuss were revered on the internet. I remember when being the grammar police was behavior that was actually celebrated. This kind of mindset lead me to read into the research on the matter (also primarily conducted by rich white folks, another bias I'm trying to undo in my life) and the modern research suggested that this figure was outdated and poorly controlled.

      I was the 1 in 100 users with the problematic behavior. It took me awhile to learn that I wasn't helping anyone out by offering this information up (turns out there were a lot of people already doing the same work I was and people are smarter than I gave them credit for), but that only scratches at the surface of the real problem. The real problem is that I didn't have the lived experience of a woman entering spaces where this discussion was happening. I wasn't the woman who received less pay than their colleagues, who put in more hours, who spoke up but was talked over, whose ideas were restated by their male peers, or who clicked on an article link talking about pay inequality or women's rights and how far we still have to go and was met with hostile comments. I didn't know how soul-crushing it could be to be met with nearly the same resistance in every public sphere where this was being discussed. I didn't know how tiring it was to have to justify my existence and to explain my struggles to those who hadn't lived the same life as me. I didn't know how heart wrenching it would feel for someone I valued, trusted, and loved to express opinions like these years after I had built up a strong bond with them and for them to be entirely unaware of the damage they were causing.

      To be clear, when I say understand I mean to have either experienced it directly enough to begin to actually place myself in the shoes of others or heard about it enough for their experience to truly sink in. It's one thing to acknowledge and know that this behavior exists, it's another to live it and see it first hand on a day where you're hanging on by a thread. To truly understand how mentally exhausting it can be to treated this way was something that escaped my comprehension because I could only live this experience through the words of others. I didn't really start to appreciate this until I got older, because I started recognizing how universal this experience truly was. I don't think I know a single female who doesn't have a story of sexual assault - the rate at which they respond with something in their lives is a stark reminder of how far we still have to come.

      What I knew, but didn't truly understand is that if 1 in 100 users have problematic behavior and 1 in 100 users are transgender, we have an equal number of transgender individuals as we do users with problematic behavior. I want you to stop here and reread the last sentence and really absorb it before moving on. Ask yourself what problems might arise by these inequality existing.

      In this hypothetical we have an even number of individuals who are going to participate in a thread about a transgender issue as we have transgender individuals. If even 1 of these transgender individuals decides they do not want to engage with this behavior, we're on a downwards slope to eventually having nearly no transgender representation as now they are outnumbered and their voice is more likely to be drowned out by the problematic individuals. As less and less people of the minority engage, because they are discouraged by the expressions of the problematic individuals, less people will wish to engage as the threads become increasingly more hostile.

      The problem we have on tildes is that the only way I see for us to become more diverse is to ask for more from those who have, to protect those who do not. I'm calling on everyone to pay closer attention to the intended audience of a thread. We need to look at how discussions are happening throughout the entirety of a thread and do a better job being welcoming of the minority opinion. We need to elevate and celebrate the voices of the minorities in these threads so that they are equal in paradigm to the voices which counter theirs. If a thread's topic is about a minority class such as gays we need to ensure that gays get an equal voice - if one person is dominating replies to gays in the comments, we need to be good allies and help balance the scales.

      We also need to stop and think about how these discussions usually play out on the rest of the internet. Do you ever see something like this on twitter and go "definitely not checking the comments"? We need to pay attention to this, and strive to ensure the same doesn't eventually apply to Tildes.

      A common example of this that I've seen is present in threads directed at specific minorities. The early discussion in a fantastic thread titled What's hard about being a woman? exemplifies this issue - because there aren't enough women on Tildes, the thread was dominated by male voices. Only one of these individuals were particularly problematic, but there was a hesitation from women I knew to enter this thread because an environment dominated by the male voice is not welcoming. Some of the women who entered this thread were met with replies challenging some of what they said, rather than elevating their voices and celebrating their participation. A small minority of men were in this thread to learn, but weren't aware of how the way they engage with other men on the internet was not appropriate for this venue. They didn't stop to consider that a thread dominated by male voices was neither welcoming nor a good start. If they had merely waited for women to start populating the thread, and replied to them, or opened soft with commentary on what they had seen in women without providing too much analysis they may have made the thread more welcoming.

      Another common example of this that I see happened in a thread I posted titled Stop telling women they have imposter syndrome. I actually had to stop myself from posting in this thread because I had an inkling that it was going to exemplify the behavior I wanted to address in a thread like this and I didn't want to disrupt what would naturally happen on Tildes absent my intervention. Nearly every reply in that thread criticizes the author for not mentioning that men can have impostor syndrome too. Imagine entering this thread as a woman - even if you emotionally connected with the author on some level, would you bother engaging when highly regarded comments focus on nitpicking the author for not being 'inclusive' enough? As far as I could tell, even the title doesn't call upon the reader to critically examine what imposter syndrome is and who is eligible to suffer from it. It's calling upon the reader to stop telling women that they have imposter syndrome (or to stop others when they make this statement), when the problem is a sexist environment. I've even received recognition from women on Tildes outside of this thread (through DMs and discussions on different platforms) who thank me for posting these threads, but their voice is often conspicuously absent from the thread itself. I do not want to speak on their behalf, but I can guess that a major reason for that is the environment we are creating here on Tildes is not welcoming enough for them to feel it is worth commenting.

      The insidious part of this problem is that very often the people creating a hostile environment do not intend to do so. They truly wish to be inclusive. Or they see behavior like this and they don't understand why it's problematic - it doesn't cause a flag to go off in their brain which tells them that they should jump in and fight on behalf of the people they want to protect. But this behavior is slowly causing minority individuals to flee this website. I don't know and cannot know them all, but waking up to PMs about someone else leaving makes my heart sink. Entering threads about the intersectional minorities that I find myself and my loved ones a part of often makes me feel similarly upset, downtrodden, and makes me feel like I want to engage less and less with this platform.

      I wish I had an answer. I wish I could wave a magic wand and make everything better. To give everyone omniscience, or at least a day's firsthand experience of someone radically different than them. Unfortunately, I do not. I think the best I can offer at this time is this post - a call on all of us to do better; a start of an ongoing discussion on how we can protect the minorities among us so that we can be bettered by their presence.

      98 votes
    9. NixOS Configuration for a VPS

      Since I took so long to reply to Tips to use NixOS on a server? by @simao, I decided to create a new topic to share my configs. Hopefully this is informative for anyone looking to do similar...

      Since I took so long to reply to Tips to use NixOS on a server? by @simao, I decided to create a new topic to share my configs. Hopefully this is informative for anyone looking to do similar things - I'll also gladly take critiques, since my setup is probably not perfect.

      First, I will share the output of 'lsblk' on my VPS:

      NAME      MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
      vda       253:0    0   180G  0 disk  
      ├─vda1    253:1    0   512M  0 part  /boot
      └─vda2    253:2    0 179.5G  0 part  
        └─crypt 254:0    0 179.5G  0 crypt 
      

      That is, I use an unencrypted /boot partition, vda1, with GRUB 2 to prompt for a passphrase during boot, to unlock the LUKS encrypted vda2. I prefer to use ZFS as my file system for the encrypted drive, and LUKS rather than ZFS encryption. This is an MBR drive, since that's what my VPS provider uses, though UEFI would look the same. The particular way I do this also requires access through the provider's tools, and not ssh or similar. The hardware-configuration.nix file reflects this:

      Click to view the hardware configuration file
      # Do not modify this file!  It was generated by ‘nixos-generate-config’
      # and may be overwritten by future invocations.  Please make changes
      # to /etc/nixos/configuration.nix instead.
      { config, lib, pkgs, modulesPath, ... }:
      
      {
        imports =
          [ (modulesPath + "/profiles/qemu-guest.nix")
          ];
      
        boot.initrd.availableKernelModules = [ "aes_x86_64" "ata_piix" "cryptd" "uhci_hcd" "virtio_pci" "sr_mod" "virtio_blk" ];
        boot.initrd.kernelModules = [ ];
        boot.kernelModules = [ ];
        boot.extraModulePackages = [ ];
      
        fileSystems."/" =
          { device = "rpool/root/nixos";
            fsType = "zfs";
          };
      
        fileSystems."/home" =
          { device = "rpool/home";
            fsType = "zfs";
          };
      
        fileSystems."/boot" =
          { device = "/dev/disk/by-uuid/294de4f1-72e2-4377-b565-b3d4eaaa37b6";
            fsType = "ext4";
          };
      
        swapDevices = [ ];
      
      }
      
      I disobey the warning at the top to add `"aes_x86_64"` and `"cryptd"` to the available kernel modules, to speed up encryption. The `configuration.nix` follows:
      Click to view the configuration file
      # Edit this configuration file to define what should be installed on
      # your system.  Help is available in the configuration.nix(5) man page
      # and in the NixOS manual (accessible by running ‘nixos-help’).
      
      { config, lib, pkgs, ... }:
      
      {
        imports =
          [ # Include the results of the hardware scan.
            ./hardware-configuration.nix
          ];
      
        # Hardware stuff
        # add the following to hardware-configuration.nix - speeds up encryption
        #boot.initrd.availableKernelModules ++ [ "aes_x86_64" "cryptd" ];
        boot.initrd.luks.devices.crypt = {
          # Change this if moving to another machine!
          device = "/dev/disk/by-uuid/86090289-1c1f-4935-abce-a1aeee1b6125";
        };
        boot.kernelParams = [ "zfs.zfs_arc_max=536870912" ]; # sets zfs arc cache max target in bytes
        boot.supportedFilesystems = [ "zfs" ];
        nix.maxJobs = lib.mkDefault 6; # number of cpu cores
      
        # Use the GRUB 2 boot loader.
        boot.loader.grub.enable = true;
        boot.loader.grub.version = 2;
        # boot.loader.grub.efiSupport = true;
        # boot.loader.grub.efiInstallAsRemovable = true;
        # boot.loader.efi.efiSysMountPoint = "/boot/efi";
        # Define on which hard drive you want to install Grub.
        boot.loader.grub.device = "/dev/vda"; # or "nodev" for efi only
        boot.loader.grub.enableCryptodisk = true;
        boot.loader.grub.zfsSupport = true;
      
        networking.hostName = "m"; # Define your hostname.
        # networking.wireless.enable = true;  # Enables wireless support via wpa_supplicant.
      
        # The global useDHCP flag is deprecated, therefore explicitly set to false here.
        # Per-interface useDHCP will be mandatory in the future, so this generated config
        # replicates the default behaviour.
        networking.useDHCP = false;
        networking.interfaces.ens3.useDHCP = true;
        networking.hostId = "aoeu"; # set this to the first eight characters of /etc/machine-id for zfs
        networking.nat = {
          enable = true;
          externalInterface = "ens3"; # this may not be the interface name
          internalInterfaces = [ "wg0" ];
        };
        networking.firewall = {
          enable = true;
          allowedTCPPorts = [ 53 25565 ]; # open 53 for DNS and 25565 for Minecraft
          allowedUDPPorts = [ 53 51820 ]; # open 53 for DNS and 51820 for Wireguard - change the Wireguard port
        };
        networking.wg-quick.interfaces = {
          wg0 = {
            address = [ "10.0.0.1/24" "fdc9:281f:04d7:9ee9::1/64" ];
            listenPort = 51820;
            privateKeyFile = "/root/wireguard-keys/privatekey"; # fill this file with the server's private key and make it so only root has read/write access
      
            postUp = ''
              ${pkgs.iptables}/bin/iptables -A FORWARD -i wg0 -j ACCEPT
              ${pkgs.iptables}/bin/iptables -t nat -A POSTROUTING -s 10.0.0.1/24 -o ens3 -j MASQUERADE
              ${pkgs.iptables}/bin/ip6tables -A FORWARD -i wg0 -j ACCEPT
              ${pkgs.iptables}/bin/ip6tables -t nat -A POSTROUTING -s fdc9:281f:04d7:9ee9::1/64 -o ens3 -j MASQUERADE
            '';
      
            preDown = ''
              ${pkgs.iptables}/bin/iptables -D FORWARD -i wg0 -j ACCEPT
              ${pkgs.iptables}/bin/iptables -t nat -D POSTROUTING -s 10.0.0.1/24 -o ens3 -j MASQUERADE
              ${pkgs.iptables}/bin/ip6tables -D FORWARD -i wg0 -j ACCEPT
              ${pkgs.iptables}/bin/ip6tables -t nat -D POSTROUTING -s fdc9:281f:04d7:9ee9::1/64 -o ens3 -j MASQUERADE
            '';
      
            peers = [
              { # peer0
                publicKey = "{client public key}"; # replace this with the client's public key
                presharedKeyFile = "/root/wireguard-keys/preshared_from_peer0_key"; # fill this file with the preshared key and make it so only root has read/write access
                allowedIPs = [ "10.0.0.2/32" "fdc9:281f:04d7:9ee9::2/128" ];
              }
            ];
          };
        };
      
        # Configure network proxy if necessary
        # networking.proxy.default = "http://user:password@proxy:port/";
        # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
      
        nixpkgs.config = {
          allowUnfree = true; # don't set this if you want to ensure only free software
        };
      
        # Select internationalisation properties.
        i18n.defaultLocale = "en_US.UTF-8";
        console = {
          font = "Lat2-Terminus16";
          keyMap = "us";
        };
      
        # Set your time zone.
        time.timeZone = "America/New_York"; # set this to the same timezone your server is located in
      
        # List packages installed in system profile. To search, run:
        # $ nix search wget
        environment = {
          systemPackages = with pkgs; let
            nvimcust = neovim.override { # lazy minimal neovim config
              viAlias = true;
              vimAlias = true;
              withPython = true;
              configure = {
                packages.myPlugins = with pkgs.vimPlugins; {
                  start = [ deoplete-nvim ];
                  opt = [];
                };
                customRC = ''
                  if filereadable($HOME . "/.config/nvim/init.vim")
                    source ~/.config/nvim/init.vim
                  endif
      
                  set number
      
                  set expandtab
      
                  filetype plugin on
                  syntax on
      
                  let g:deoplete#enable_at_startup = 1
                '';
              };
            };
          in
          [
            jdk8
            nvimcust
            p7zip
            wget
            wireguard
          ];
        };
      
        # Some programs need SUID wrappers, can be configured further or are
        # started in user sessions.
        # programs.mtr.enable = true;
        # programs.gnupg.agent = {
        #   enable = true;
        #   enableSSHSupport = true;
        #   pinentryFlavor = "gnome3";
        # };
      
        # List services that you want to enable:
      
        # Enable the OpenSSH daemon.
        services = {
          dnsmasq = {
            enable = true;
            # this allows DNS requests from wg0 to be forwarded to the DNS server on this machine
            extraConfig = ''
              interface=wg0
            '';
          };
          fail2ban = {
            enable = true;
          };
          openssh = {
            enable = true;
            permitRootLogin = "no";
          };
          zfs = {
            autoScrub = {
              enable = true;
              interval = "monthly";
            };
          };
        };
      
        # Set sudo to request root password for all users
        # this should be changed for a multi-user server
        security.sudo.extraConfig = ''
          Defaults rootpw
        '';
      
        # Define a user account. Don't forget to set a password with ‘passwd’.
        users.users = {
          vpsadmin = { # admin account that has a password
            isNormalUser = true;
            home = "/home/vpsadmin";
            extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
            shell = pkgs.zsh;
          };
          mcserver = { # passwordless user to run a service - in this instance minecraft
            isNormalUser = true;
            home = "/home/mcserver";
            extraGroups = [];
            shell = pkgs.zsh;
          };
        };
      
        systemd = {
          services = {
            mcserverrun = { # this service runs a systemd sandboxed modded minecraft server as user mcserver
              enable = true;
              description = "Start and keep minecraft server running";
              wants = [ "network.target" ];
              after = [ "network.target" ];
              serviceConfig = {
                User = "mcserver";
                NoNewPrivileges = true;
                PrivateTmp = true;
                ProtectSystem = "strict";
                PrivateDevices = true;
                ReadWritePaths = "/home/mcserver/Eternal_current";
                WorkingDirectory = "/home/mcserver/Eternal_current";
                ExecStart = "${pkgs.jdk8}/bin/java -Xms11520M -Xmx11520M -server -XX:+AggressiveOpts -XX:ParallelGCThreads=3 -XX:+UseConcMarkSweepGC -XX:+UnlockExperimentalVMOptions -XX:+UseParNewGC -XX:+ExplicitGCInvokesConcurrent -XX:MaxGCPauseMillis=10 -XX:GCPauseIntervalMillis=50 -XX:+UseFastAccessorMethods -XX:+OptimizeStringConcat -XX:NewSize=84m -XX:+UseAdaptiveGCBoundary -XX:NewRatio=3 -jar forge-1.12.2-14.23.5.2847-universal.jar nogui";
                Restart = "always";
                RestartSec = 12;
              };
              wantedBy = [ "multi-user.target" ];
            };
            mcserverscheduledrestart = { # this service restarts the minecraft server on a schedule
              enable = true;
              description = "restart mcserverrun service";
              serviceConfig = {
                Type = "oneshot";
                ExecStart = "${pkgs.systemd}/bin/systemctl try-restart mcserverrun.service";
              };
            };
          };
          timers = {
            mcserverscheduledrestart = { # this timer triggers the service of the same name
              enable = true;
              description = "restart mcserverrun service daily";
              timerConfig = {
                OnCalendar = "*-*-* 6:00:00";
              };
              wantedBy = [ "timers.target" ];
            };
          };
        };
      
        # This value determines the NixOS release from which the default
        # settings for stateful data, like file locations and database versions
        # on your system were taken. It‘s perfectly fine and recommended to leave
        # this value at the release version of the first install of this system.
        # Before changing this value read the documentation for this option
        # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
        system.stateVersion = "20.09"; # Did you read the comment?
      
      }
      
      You'll notice that this server acts as a Wireguard endpoint and as a Minecraft server. I described the first part on the [NixOS wiki page for Wireguard](https://nixos.wiki/wiki/Wireguard) under the section that mentions dnsmasq. The second part is done using NixOS's systemd support, which can be a bit confusing at first but is easy enough once you know how it works.

      Edit: Also, the provider I use is ExtraVM, who has been excellent.

      6 votes
    10. What do you think are the most memorable examples of propaganda?

      Can be posters, advertisements, videos/films and maybe national/revolutionary anthems/songs. My favorites so far are: "Is Colorado in america?" (Basically a US flag with various constitutional...

      Can be posters, advertisements, videos/films and maybe national/revolutionary anthems/songs.

      My favorites so far are:

      "Is Colorado in america?" (Basically a US flag with various constitutional rights being
      written as violated in the US flag's stripes in Colorado, including the 2nd amendment.)

      "Daisy" (Lyndon B. Johnson campaign attack ad, implying that if you do not vote for LBJ, we would have nuclear war.)

      Honorary mentions for: Wake up, by the Lincoln project, which has a very similar "these are the stakes" tune for 2020. Mourning in America and We will vote are pretty good too.

      24 votes
    11. What's something you have always wanted to know about being LGBT (but were maybe afraid to ask)?

      Introduction Gender and sexuality are complex, personal topics, and asking questions about them can often feel invasive or even offensive. Discussions about them can be tough to navigate,...

      Introduction

      Gender and sexuality are complex, personal topics, and asking questions about them can often feel invasive or even offensive. Discussions about them can be tough to navigate, especially online, where people's guards are often up and hostility and harassment are common.

      In order to help clear the air and provide a safe space for honest and genuine dialogue, we have assembled a cross-section of Tildes' LGBT community to whom you can ask questions. These volunteers have agreed to open up about their experiences, identities, and knowledge.

      In this thread, you will be able to ask our panelists questions regarding anything you've ever wanted to know about being LGBT. Our goal is to provide you with meaningful answers, not judge you for your questions! For the purposes of this thread, LGBT refers to the umbrella term under which all minority gender and sexual identities fall.


      Guidelines for Participation

      Asking Questions
      • Questions will be afforded the principle of charity. Ask any questions you've ever wanted to know, especially those you might feel are "not okay" to ask elsewhere.
      • Feel free to ask informational questions (e.g. "What does 'pansexual' mean?"), experiential questions (e.g. "Are you out to your family? If so, how did they respond to you coming out?"), and opinion questions (e.g. "What are your thoughts on the various LGBT acronyms?").
      • You can ask questions to the whole panel or to specific members. If asking specific members, please ping them using an @username mention in your comment.
      • Follow-up questions are allowed and encouraged.
      • Not all questions have to be serious! It's totally okay to ask fun, non-serious stuff too.
      Giving Answers
      • Panelists have the right to pass on any question they do not want to answer. While they might give a reason for passing, they are not required to do so.
      • Similarly, not all questions will receive answers from all panelists. We have a large group and don't want to overwhelm everyone with 10+ responses to every question.
      • Each panelist is speaking from their own experience and perspective, so you might find conflicting information in responses to a question, and that's okay! We're a diverse group of different people, not a unified monoculture!
      Additional Notes
      • The panel's make-up is based entirely on who volunteered and is not meant to be representative of all identities under the LGBT umbrella.
      • Similarly, any one panelist's voice should not be taken as representative of the opinion of all those who share their identity.
      • Please remember that these panelists are choosing to share intimate and often difficult personal information. Please respect their disclosure in your responses -- they are putting themselves out there for you!
      • If you do not wish to see or participate in this thread for whatever reason, use Tildes' ignore topic feature to hide it from your feed.

      Panelists

      Here are the users who will be answering your questions:

      @Algernon_Asimov
      @CALICO
      @Cleb
      @emdash
      @Gaywallet
      @kfwyre
      @patience_limited
      @reifyresonance
      @ShilohMizook
      @Silbern
      @tindall
      @Whom

      You can get more information on each in their bios below:

      Full Panelist Bios
      Name Identity Preferred Pronouns Bio
      @Algernon_Asimov Gay man I'm "Algernon". I'm a middle-aged gay man living in Australia. I came of age during the 1980s, when "gay" meant "Got AIDS Yet?".
      @CALICO Pan & Poly, Male-shaped, Agender, Non-transitioning Trans None/No-preference Late-20's, military brat, former military, current gov't contractor. Historically lived all over the US; in the past 18-months I've lived in three states and two non-US countries—currently Afghanistan. Out where it matters, closeted where it doesn't. Unmarried—probably forever—in a LT/LDR currently with just one person. Shameless hippie, hobbyist, & aspiring author.
      @Cleb Genderfluid (Agender & Femme, also fine with just Non-Binary) They/Them, She/Her Early 20s, American, white, closeted in real life. Grew up in very conservative & religious area, still live here. Can talk about growing up like that, my struggle with fluidity/internalized transphobia/gender as a whole, things relating to trans culture on the internet, and any of the other standard fare trans and gender-nonconforming person questions.
      @emdash. If you wanted to find my real name and social media profiles, you probably could, but keep it to yourself and don't be a dick, okay? Gay cis-male He/him Early 20s (wow there's a theme emerging) guy living in New Zealand. Software engineering degree, but I hate the industry, so working on my own business and studying to be a pilot instead (aka the backup plan). I also fly a paraglider for fun. I've always lived in New Zealand, but would love to live overseas. Have the Tinder/Taimi profile tuned to a fine fucking art (IMHO). Out to friends, family aren't informed since I'm not particularly close to them anyway.
      @Gaywallet pan, poly, enby (nonbinary) they/them Early 30s, lived in California my whole life. Currently have 5 partners and feeling quite polysaturated. Big into raving, psychedelics, and general hippy stuff but with a queer focus. Out to friends and family, but not fully flying my flag at work (work in progress to happen this year).
      @kfwyre gay cis male he/him/they/them Teacher. Happily married. Living in the US, and grew up in a very conservative Christian area. Came out in my 20s and dealt with severe depression and fallout with family.
      @patience_limited Queer; intersex non-binary they/them/she/her Mainly in the sidebar. US, 50's, raised near a university town, married. White(ish).
      @reifyresonance transfemme, queer, poly she/they 19, living in the southern US. Studied in China for a year and did a field research project on marginalized queer identities in Shanghai nightlife (talked to people in gay bars), so if anyone wants to hear my (white, American) thoughts on that, I'm game :). I also got to help start an LGBT organization at my school there! Spent the last six months or so doing computer programming, and was part of the workplace LGBT affinity group. (Also, general transgender questions.)
      @ShilohMizook (Shiloh) Bisexual, lean mostly towards guys. Cis male. He, Him. 17, I go to a Catholic school in Florida, but the people there are pretty accepting, so I'm out to everyone. My parents try to avoid the subject. I've never actually met another non-straight guy in real life, which has kind of frustrated me, but it's okay.
      @Silbern Gay male He/him I'm an early 20's white guy with Asperger's Syndrome studying Computer Science. I come from a military family, so I've traveled a lot and lived in many places that were across the spectrum in gay friendliness. I currently live in Hawaii, which might be relevant both for my answers as well as possible time zone limitations.
      @tindall bisexual transgender female she/her Software engineer just getting out of college and into my first long-term full-time gig, at a company making cancer screening software. Grew up all over the place (East Coast, then Texas, then California) and I'm now in the Midwest. I care a lot about making the world a gentler and more supportive place for everyone, and I try to apply my skills to do that.
      @Whom (...and Scarlett) Trans lesbian She Early 20s, raised in the rural US (Wisconsin) studying English Education. Oh, and white. That's the important bits for context. I'm very familiar with current youth trans culture on the internet (which is so pervasive within the community that it's necessary for understanding what it's like being young and trans), so I'm well-equipped to answer questions relating to that or, of course, the trans experience as I see it. I might also be a decent resource to ask about how mental illness (particularly depression, severe anxiety, and light dissociation) fits into the whole picture.

      The door is open. Ask away!

      80 votes
    12. What's a question you're hesitant or afraid to ask?

      It can be for any reason: Perhaps the question leads toward some uncomfortable self-reflection (e.g. "Am I annoying?") Perhaps the question might make you appear foolish or uneducated to some...

      It can be for any reason:

      • Perhaps the question leads toward some uncomfortable self-reflection (e.g. "Am I annoying?")
      • Perhaps the question might make you appear foolish or uneducated to some (e.g. "What is an IRA and why might I need one?")
      • Perhaps the question might be seen as offensive or in bad taste (I don't think we need an example here)
      • Perhaps the question itself is just outright uncomfortable due to its subject matter (e.g. "What is it like to get a colonoscopy?")
      • Perhaps there's another reason I haven't covered here

      Whatever the reason, this thread is your chance to ask any questions you want to, regardless of how you'll be viewed. It's also a chance to have those questions answered, should anyone be willing to do so.

      With this in mind, there are some pretty important ground rules:

      As a question asker, do EVERYTHING IN YOUR POWER to frame your question favorably and show sincerity. Walking in with a one sentence bombshell question that's guaranteed to stoke fires is likely to get you tagged for malice. Better to explain your thinking and why you have that question in the first place so that people can know you're coming from a genuine place. The more effort you put into your post, the more people are likely to respond with effort in kind.

      As a question answerer, do EVERYTHING IN YOUR POWER to apply the principle of charity. The whole point of this thread is to draw out uncomfortable questions, so do your best to answer them a way that acknowledges that discomfort rather than heightening it. Also remember that even if the person asking the question isn't doing so in the best way, there are probably people in the audience with the same or similar questions. Write your responses with them in mind too.

      As readers, do EVERYTHING IN YOUR POWER to both vote on comments you feel are good contributions as well as flag any comments you feel are malicious or in bad faith.

      I think we've got a lot of great people on the site, and I know there are probably a ton of uncomfortable questions lurking out there. I think this is a good chance for us to get some of them out into the open so that they can be addressed in thoughtful and illuminating ways.

      28 votes
    13. Suggestion when linking to comments from a user's history page

      Comments in a person's history page have a "Link" and "Parent" link on them. My suggestion is have just a single link to the comment, but all other comments on the page that are not direct...

      Comments in a person's history page have a "Link" and "Parent" link on them.

      My suggestion is have just a single link to the comment, but all other comments on the page that are not direct parents/ancestors or children/descendants of the linked to comment should be minimized so we can easily see the relevant discussion, but also view them if we want, and the linked comment itself should be highlighted in some way.

      You could probably put a "Hide all but direct family" flag in the querystring

      6 votes
    14. Tildee — A python library for interacting with Tildes

      Update! After a few hours of struggling I managed to set up Read the docs for Tildee, it should help using the library significantly. After getting some inspiration from TAPS I thought that maybe...

      Update! After a few hours of struggling I managed to set up Read the docs for Tildee, it should help using the library significantly.

      After getting some inspiration from TAPS I thought that maybe I try to work on something vaguely similar on my own. And after… some? hours of coding today I came up with this: tildee.py (source)
      It's a wrapper for the Tildes Public/Web API that is already used by the site internally to make it work. The obvious problem with that is that it will at one point break when this unstable API is changed. It can do basically all things a normal user can do with the notable exception of applying comment labels (because I haven't gotten around to that yet).

      Example of usage for a DM reply bot (result):

      import sys
      from tildee import TildesClient
      import time
      
      # Initialize client and log in, 2FA isn't supported yet and will probably break in horrible ways
      t = TildesClient("username", "password", base_url="https://localhost:4443", verify_ssl=False)
      
      while True:
          # Retrieve the "unread messages" page and get a list of the conversations there
          unread_message_ids = t.fetch_unread_message_ids()
          for mid in unread_message_ids:
              # Access the conversation history page; this also clears the "unread" flag 
              conversation = t.fetch_conversation(mid)
              # Get the text of the last message
              text = conversation.entries[-1].content_html
              # Abort if it's from the current user (I don't think this could actually happen)
              if conversation.entries[-1].author == t.username:
                  break
              print(f"Found a message by {conversation.entries[-1].author}")
              # If the message contains a reference, reply in kind
              if "hello there" in text.lower():
                  print("Replying…")
                  t.create_message(mid, f"General {conversation.entries[-1].author}! You are a bold one.")
              # Delay before processing next unread message
              time.sleep(3)
          # Delay before next unread check
          time.sleep(60)
      

      This has a lot of potential. Haven't yet figured out potential for what, but I'll take what I can get.
      I'd be really grateful if someone with a little more experience than me (that's not exactly a high bar :P) could give me some pointers on the project's structure and the "API design", hence the ask tag. Other creative ideas for what to use this for are appreciated, too.

      47 votes
    15. 'Free the flag': Aboriginal businesses told not to use Aboriginal flag over copyright

      Here's a secondary news article (web-based): 'Free the flag': Aboriginal businesses told not to use Aboriginal flag over copyright Here's the original news article (it's a PDF document from this...

      Here's a secondary news article (web-based): 'Free the flag': Aboriginal businesses told not to use Aboriginal flag over copyright

      Here's the original news article (it's a PDF document from this website): ‘Our’ flag raises questions

      10 votes