Skip Navigation
Georgia president vetoes divisive 'foreign agent' law
  • Unfortunately:

    However, her veto is only symbolic as the prime minister's Georgian Dream party has enough members in parliament to override it by holding another vote.

  • Over 80,000 Illinois people banned from owning guns still keep them, report shows
  • Personally, I’ve yet to see a single American successfully use guns to protect any other constitutional right from government infringement.

    The Battle of Athens is probably the most uniquely clear-cut example of what you're asking for, unless we count the American Revolutionary War itself.

    Other successful examples mostly involve activists using non-violent protest to push for change, while using firearms to protect themselves from violent reactionaries that would otherwise murder them. Notably, the civil rights movement of the 1950s and 60s. For a modern example, there's various "John Brown Gun Clubs" and other community defense organizations providing security at LGBTQ events against fascist groups that seek to terrorize event-goers.

    It's also worth noting that resistance is often worthwhile even if it doesn't result in unqualified victory. For example, the Black Panthers' armed cop-watching activities saved a lot of Black folks from brutal beatings at the hands of the police, even if the organization was eventually crushed by the federal government.

    I have seen lots of examples like Waco and Ruby Ridge, where the government should have tried harder to deescalate, but in the end, everyone died. The closest example I can think of where the government did backoff was the Bundy standoff and all those guys were “defending” was their ability to let their cattle graze illegally on federal land because they didn’t want to pay for access like everyone else.

    It sounds like you might be in a bit of a filter-bubble. I don't mean any offense by this, it's a normal thing that tends to happen to people. If the news sources you read and the people you talk to don't mention these things because it doesn't mesh with their worldview, how would you hear about them?

  • Over 80,000 Illinois people banned from owning guns still keep them, report shows
  • Strong gun control requires a police state, and it's advocates are okay with this. Some of them (mostly suburbanites and the like) just imagine that that police state will never be directed against them.

    Others are capitalists that actively want to inflict a police state on the rest of us, for their own benefit. It's a lot easier to break strikes and enforce "work discipline" when the working class is disarmed.

  • If you care about US democracy, tell your congressperson to support the Fair Representation Act!
  • I see conservatives complaining about it occasionally, but I'm not sure how prevalent that sentiment is among them.

  • PS5 Bluetooth Controller Connectivity issues to PC 🎮
  • Are there any physical obstructions between the controller and the antenna? That'd reduce the effective range.

  • Ancaps (don't) rule
  • Ancaps: Government is bad because tyranny, we should get rid of it.

    Also Ancaps: Here's how we can still enforce copyright, abortion bans, and racial segregation without a government! 🥰

  • 👣 - 2023 DAY 23 SOLUTIONS -👣
  • Nim

    Part 1 was just a simple search. Part 2 looked like it just needed a trivial modification, but with the removal of the one-way tiles, the result I was getting was getting for the example was too large. I switched to a different method of determining the path length, but didn't yet figure out what what I had been doing wrong. Since the search space was now significantly larger, my part 2 code took almost an hour to come up with the answer.

    I rewrote part 2 to simplify the maze into a graph with a node for each intersection and for the start and goal tiles, with edge costs equal to the path length between each. This resulted in significantly faster iteration (17 seconds instead of 52 minutes), but didn't actually reduce the search space. I'm assuming there's some clever optimization that can be done here, but I'm not sure what it is.

    The rewrite was still getting the wrong answer, though. I eventually figured out that it was including paths that didn't actually reach the goal, as long as they didn't revisit any nodes. I changed my recursive search function to return a large negative result at dead ends, which fixed the issue.

  • ⏳ - 2023 DAY 22 SOLUTIONS -⏳
  • Nim

    I sorted the bricks by their lower Z coordinate, then tried to move each of them downward, doing collision checks against all the others along the way. Once a level with collisions was found, I recorded each colliding brick as a supporter of the falling brick.

    For part 1, I made another table of which other bricks each brick was supporting. Any bricks that weren't the sole support for any other bricks were counted as safe to disintegrate.

    For part 2, I sorted the bricks again after applying gravity. For each brick, I included it in a set of bricks that would fall if it were removed, then checked the others further down the list to see if they had any non-falling supporters. Those that didn't would be added to the falling set.

    Initially I was getting an answer for part 2 that was too high. I turned out that I was counting bricks that were on the ground as being unsupported, so some of them were getting included in the falling sets for their neighbors. Adding a z-level check fixed this.

    Both of these have room for optimization, but non-debug builds run 0.5s and 1.0s respectively, so I didn't feel the need to write an octree implementation or anything.

  • 🦶️ - 2023 DAY 21 SOLUTIONS - 🦶️
  • Nim

    My part 2 solution assumes the input has an unimpeded shortest path from the center of each garden section to its corner, and to the center of its neighbor. The possible destinations will form a diamond pattern, with "radius" equal to the number of steps. I broke down the possible section permutations:

    • Sections that are completely within the interior of the diamond

      • Even number of sections away from the starting section
      • Odd number of sections away from the starting section
    • Sections containing the points of the diamond

    • Depending on the number of steps, there may be sections adjacent to the point sections, that have two corners outside of the diamond

    • Edge sections. These will form a zig-zag pattern to cover the diamond boundary.

      • "Near" edge sections. These are the parts of the zig-zag nearer to the center of the diamond.
      • "Far" edge sections. These won't occur if the edge of the diamond passes perfectly through the corners of the near edge sections.

    I determined how many of each of these should be present based on the number of steps, used my code from part 1 to get a destination count for each type, and then added them all up.

  • 💓 - 2023 DAY 20 SOLUTIONS - 💓
  • Nim

    Another least common multiple problem. I kinda don't like these, as it's not practical to solve them purely with code that operates on arbitrary inputs.

  • ⚙️ - 2023 DAY 19 SOLUTIONS -⚙️
  • Nim

    Part 1 was pretty straightforward. For part 2 I made an ItemRange type that's just one integer range for each attribute. I also made a split function that returns two ItemRange objects, one for the values that match the specified rule, and the others for the unmatched values. When iterating through the workflows, I start a new recursion branch to process any matching values, and continue stepping through with the unmatched values until none remain or they're accepted/rejected.

  • 🛶 - 2023 DAY 18 SOLUTIONS -🛶
  • Yeah, I read up on ear clipping for a small game dev project a while back, though I don't remember if I actually ended up using it. So my solution is inspired by what I remember of that.

  • 🛶 - 2023 DAY 18 SOLUTIONS -🛶
  • Yep, I figure it's good exercise to make me think through the problems thoroughly.

  • 🛶 - 2023 DAY 18 SOLUTIONS -🛶
  • Shoelace formula

    This would have been really useful to know about. I've committed to a certain level of wheel-reinvention for this event unless I get really stuck, but I'm sure it'll come up again in the future.

  • 🛶 - 2023 DAY 18 SOLUTIONS -🛶
  • Nim

    I am not making good time on these anymore.

    For part 1, I walked through the dig plan instructions, keeping track of the highest and lowest x and y values reached, and used those to create a character grid, with an extra 1 tile border around it. Walked the instructions again to plot out the trench with #, flood-filled the exterior with O, and then counted the non-O tiles. Sort of similar to the pipe maze problem.

    This approach wouldn't have been viable for part 2, due to the scale of the numbers involved. Instead I counted the number of left and right turns in the trench to determine whether it was being dug in a clockwise or counterclockwise direction, and assumed that there were no intersections. I then made a polygon that followed the outer edge of the trench. Wherever there was a run of 3 inward turns in a row, that meant there was a rectangular protrusion that could be chopped off of the main polygon. Repeatedly chopping these off eventually turns the polygon into a rectangle, so it's just a matter of adding up the area of each. This worked great for the example input.

    Unfortunately when I ran it on the actual input, I ran out of sets of inward turns early, leaving an "inside out" polygon. I thought this meant that the input must have intersections in it that I would have to untwist somehow. To keep this short, after a long debugging process I figured out that I was introducing intersections during the chopping process. The chopped regions can have additional trench inside of them, which results in those parts ending up outside of the reduced polygon. I solved this by chopping off the narrowest protrusions first.

  • 🍵 - 2023 DAY 17 SOLUTIONS -🍵
  • Nim

    Another tough one. Judging by the relative lack of comments here, I wasn't the only one that had trouble. For me this one was less frustrating and more interesting than day 12, though.

    I solved part 1 by doing a recursive depth-first search, biasing towards a zigzag path directly to the goal in order to establish a baseline path cost. Path branches that got more expensive than the current best path terminated early. I also stored direction, speed, and heat loss data for each tile entered. Any path branch that entered a tile in the same direction and at the same (or greater) speed as a previous path was terminated, unless it had a lower temperature loss.

    This ran pretty slowly, taking around an hour to finish. I took a break and just let it run. Once it completed, it had gotten pretty late, so I did a quick naive modification for part 2 to account for the new movement restrictions, and let that run overnight. The next day it was still running, so I spent some time trying to think of a way to speed it up. Didn't really get anywhere on my own, so I started reading up on A* to refresh my memory on how it worked.

    The solution that I arrived at for the rewrite was to use Dijkstra's algorithm to pre-compute a map of what the minimum possible costs would be from each tile to the goal, if adjacent tiles could be moved to without restriction. I then used that as the heuristic for A*. While I was writing this, the original part 2 program did finish and gave the correct answer. Since I was already this far in though, I figured I'd finish the rewrite anyway.

    The new program got the wrong answer, but did so very quickly. It turned out that I had a bug in my Dijkstra map. I was sorting the node queue by the currently computed cost to move from that node to the goal, when it instead should have been sorted by that plus the cost to enter that node from a neighbor. Since the node at the head of the queue is removed and marked as finalized on each iteration, some nodes were being finalized before their actual minimum costs were found.

    When using the A* algorithm, you usually want your heuristic cost estimate to underestimate the actual cost to reach the goal from a given node. If it overestimates instead, the algorithm will overlook routes that are potentially more optimal than the computed route. This can be useful if you want to find a "good enough" route quickly, but in this case we need the actual best path.

  • Versions 2.0.2 and 1.6.18 released
    nim-lang.org Versions 2.0.2 and 1.6.18 released

    The Nim team is happy to announce two releases: the latest Nim, version 2.0.2 LTS release, version 1.6.18

    Versions 2.0.2 and 1.6.18 released

    The Nim team is happy to announce two releases:

    • the latest Nim, version 2.0.2
    • LTS release, version 1.6.18
    1
    [RESOLVED] Why is ani.social defederated?

    EDIT: Looks like the defederation has been reversed. @db0 Thank you for looking into this quickly.

    ---

    A commenter in the linked post is suggesting that dbzer0 automatically follows lemmy.world's block list. That seems like kind of a bad idea? In this instance it seems like the LW admins are just following the decision of lemmy.ml's tankie admins, and tankies gonna tank.

    9
    [RESOLVED] Why did lemmy.world defederate from ani.social?

    EDIT: As noted in the linked post, the defederation was a mistake and has been reversed. Thank you to the lemmy.world admins for reviewing this quickly.

    ---

    I'm not a lemmy.world user, so I'm not directly affected by this defederation. I am a fan of both anime and the fediverse in general though, so I'm concerned about an apparent crackdown on my hobby and by what seems to be an increasingly damaging flaw in the fediverse model.

    A few days ago. lemmy.ml defederated from ani.social, a lemmy instance specialized in anime. The only explanation given by Dessalines (lead dev of lemmy, owner of lemmy.ml and lemmygrad.ml) was that it was "full of CSAM". As far as anyone who's commented can tell, there doesn't seem to be any evidence of this whatsoever (see post link for an overview of the discussions). The only CSAM here appears to be in Dessalines' head.

    That defederation was annoying, but not all that surprising. Dessalines and his fellow lead dev Nutomic are tankies, and tankies often seem to have a weird hatred of anime fans. The two of them have a history of making self-marginalizing decisions, so the obvious course of action is to just point them out so that people gradually abandon lemmy.ml, and hopefully eventually fork the lemmy codebase.

    However, today I found out that lemmy.world had also defederated ani.social, again with no evidence presented for the decision. It looks like the LW admins are just rubber-stamping the bad decision of the lemmy.ml admins, without bothering to investigate at all.

    We really can't afford to have the most popular lemmy instance behaving like this. The LW admin team has generally shown more professionalism in that past, so what gives?

    10
    [meta] The anime instance, ani.social, has been defederated by lemmy.ml
    ani.social [Announcement] Lemmy.ml has defederated from ani.social (and what this means for us) - AniSocial

    Please do not say anything hateful to the Lemmy.ml [http://Lemmy.ml] admins or the developers. Before commenting on this thread, please read the post completely. — We (ani.social) have been defederated from Lemmy.ml [http://Lemmy.ml] a few hours ago presumably for the reason of being “full of CSAM” ...

    Those of you that have your account on lemmy.ml may want to consider moving to another instance if you still want to be able to access ani.social.

    29
    Tankie lemmy devs blacklist the anime instance from join-lemmy.org and lemmy.ml
    ani.social [Announcement] Lemmy.ml has defederated from ani.social (and what this means for us) - AniSocial

    Please do not say anything hateful to the Lemmy.ml [http://Lemmy.ml] admins or the developers. Before commenting on this thread, please read the post completely. — We (ani.social) have been defederated from Lemmy.ml [http://Lemmy.ml] a few hours ago presumably for the reason of being “full of CSAM” ...

    0
    Rule but unironically

    Liberated from some sarcastic tankie

    15
    Anyone used Open Tax Solver to do your taxes? (US)

    I'd been vaguely aware of campaigns by tax-prep companies to stop the IRS from offering its own tax-prep software. I was going over some of my old tax info today, and started to wonder if there were any open source tax-prep programs.

    What I found was Open Tax Solver. I get the impression that it's more clunky that using commercial tax-prep. Does anyone here have firsthand experience with it?

    4
    What's the best *easy* KDE-based Linux distro these days?

    I'm not a beginner anymore, but I'm much less interested in technical tinkering for its own sake than I used to be. These days I just want my computer to work properly without too much intervention from me.

    I've been using Kubuntu for a number of years, but I'm also hearing increasing complaints about how Canonical is running things. I don't think I'm ready to switch to a new distro yet, but it wouldn't hurt to know what's out there.

    Is Kubuntu still a good choice for an "it just works" KDE-based distro, or has it been surpassed?

    32
    linux4noobs - Newbie-friendly Linux support community

    > > > linux4noobs is a community dedicated to offering assistance with Linux installation, configuration, and utilization. While its primary goal is to provide and receive support, this community also serves as a hub for sharing and discussing all things Linux among like-minded enthusiasts. By fostering a community where more individuals understand and use Linux, we contribute to its continuous improvement and advancement. The golden rule: - Maintain respectful and amiable discussions. This is a safe space where individuals may freely inquire, exchange thoughts, express viewpoints, and extend help without encountering belittlement. We have all been a noob at one point. > >

    8
    Utsuro no Hako to Zero no Maria / The Empty Box and Zeroth Maria

    This is the only Japanese LN that I've read, I'm otherwise mainly a manga reader. It kept popping up in my recommendations on MyAnimeList, and I was intrigued by the synopsis with the presence of the "romance" tag:

    > > > Kazuki Hoshino values his everyday life above all else. He spends the days carefree with his friends at school, until the uneventful bliss suddenly comes to a halt with the transfer of the aloof beauty Aya Otonashi into his class and her cold, dramatic statement to him immediately upon arrival: > > > > "I'm here to break you. This is the 13,118th time I've transferred. After so many occasions, I have to say that this is all starting to grate on me, which is why this time I'm spicing things up with a proper declaration of war." > > > > And with those puzzling words, the ordinary days that Kazuki loved so dearly become a cycle of turmoil and fear—Aya's sudden appearance signals the unraveling of unseen mysteries surrounding Kazuki's seemingly normal friends, including the discovery of mysterious devices known as "boxes." > >

    I eventually got around to reading it when I'd gotten a craving for the "enemies to lovers" trope. It was quite good overall (I rated it a 9), though it does flirt with what I consider to be cheap rage bait at some points.

    0
    /kbin meta @kbin.social cacheson @kbin.social
    Who are the current admins of kbin.social? /m/fediverse needs moderators

    There's currently a spam "buy adderall" post on /m/fediverse that's been up for 16 hours now. The magazine has no moderators other than Ernest.

    I also remember hearing at some point that kbin.social was being run by some other admins so that Ernest could focus on code, but I don't know who they are. Does anyone else know who we should be pinging for issues like this?

    One additional question, is there an issue tracker for problems/requests that are specific to kbin.social, rather than the kbin codebase? It doesn't make sense to fill up the issue tracker on codeberg with "this magazine needs moderators" requests and the like, but we do need somewhere to keep track.

    13
    Alternate Bitcoin community

    This place is looking a bit dead. It seems like lemmy.world has the most active Bitcoin community, so we should probably consolidate our activity there:

    0
    Nim Programming Language

    This got created on programming.dev about 2 weeks ago, but hasn't had much activity yet. Not too surprising as Nim is a relatively new language. It's super cool and you should check it out, though. It's a compiled language with performance similar to C/C++, but is much more pleasant to work in. Some tend to liken it to working with Python.

    2
    Lewd Anime Girls - "Your new spot to view Anime Girls being Lewd"

    Just found a place to post my more risque anime memes. It has a "no genitals" rule, so not for outright porn:

    1
    cacheson cacheson @kbin.social
    Posts 31
    Comments 341