• 0 Posts
  • 33 Comments
Joined 5 months ago
cake
Cake day: June 10th, 2024

help-circle
  • So, here’s my attempt

    The first portion (^.?$) matches all lines of 0 or 1 characters.

    The second portion (^(..+?)\1+$) is more complicated:

    1. (..+?) is a capture group that matches the first character in any line, followed by a smallest possible non-zero number of characters such that (2) still matches (note that the minimum length of this match is 2)
    2. \1+ matches as many as possible (and more than 0) repeats of the (1) group

    I think what this does is match any line consisting of a single character with the length

    • divisible by some number (due to the more than 0 condition in (2), so that there have to be repeats in the string), that’s not
      • 1 (due to the note in (1), so that the repeating portion has to be at least 2 characters long), or
      • the length itself (due to the more than 0 condition in the (2), so that there is at least one repetition)

    Therefore, combined with the first portion, it matches all lines of the same character whose lengths are composite (non-prime) numbers? (it will also match any line of length 1, and all lines consisting of the same string repeated more than one time)


  • 90s-late 00s cars are actually on repairability in my experience, because they already have computers which help you diagnose failures easily with a $20 OBD2 scanner (this saved my ass a couple of times, when I could almost immediately see the error whenever my car died, fiddle or re-plug the wiring of the failed component and keep going), and they don’t yet have all the over-complicated, designed-to-fail, hard-to-reach crap that a lot of new cars have.






  • “NixOS project” did not call anyone nazis, there was no “purge”, this article is clickbait and ragebait. What one contributor, however prolific, says, doesn’t represent the entire project (even though I somewhat agree with him here - there are sadly some bigots in the community).

    Nobody forced Eelco (the founder of Nix) to “abdicate”, but there was indeed pressure to step down as the de-facto BDFL put on him by various people. He’s respected as an engineer, architect, maintainer and mentor, but his community management skills were perceived to be lacking, and there were other perceived issues in the community - which boiled down to the fact that a lot of contributors didn’t feel like they could influence the direction of the project. Note that he’s not expelled from the project in any way, he’s still a maintainer of Nix itself, which AFAIU from my interactions with him is what interests him the most, and he’s more or less happy to leave administrative/community stuff to other people.

    Then began a process to establish a new governance structure. Currently, we’re up to a stage where there’s now formal community values and a new constitution for the project. There’s an election happening right now, with all active contributors able to become candidates or vote (although the deadline for candidate nominations has passed, so now we can only vote).



  • UNIX was kinda designed to be an IDE (of its time) by itself. Desktop/Server Linux (whether GNU or non-GNU) mostly continues this tradition; you are provided with some powerful tools for text manipulation, development, debugging and deployment out of the box in most distros. As such, any modern Linux distro is pretty good for development even out of the box. However, you must learn to use this power, and I’m not claiming it’s easy (I still regularly look up various manpages despite doing development on Linux for 10+ years in various forms).

    With that said, I myself prefer NixOS. It really feels more developer-oriented that other distros, as you get the power of Nix out of the box, and integrated into the system. With Nix you get easy access to the biggest software repository in the world. You get per-project development shells, so that you never have to worry about different toolchain versions for different projects, or your system being contaminated with bloat you no longer need. You get the power of reproducible packaging, to eliminate a lot of (but unfortunately not all of) “Works on my machine”-type of problems. It’s also got a hell of a learning curve, but I think it’s worth it.


  • balsoft@lemmy.mltoMemes@lemmy.mlYour kids are gonna love it
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    1 month ago

    My understanding is that the Congress of Soviets was replaced with the Supreme Soviet, the democratic structure was changed but the Soviets remained, just shifted in form, and could still be used democratically, just not in all cases.

    I believe this is true, but I would argue that the fundamental change was that non-Party candidates were almost never allowed to run. As I noted, this is not due to a constitutional change but rather a change in electoral tradition. Anecdotally, as a result of this, all three my grandparents didn’t feel represented by their deputies/delegates, and welcomed that part of the Perestroyka changes, when the rules were relaxed and more alternative candidates appeared.

    A good analogy is that most local governments in the US run uncontested.

    I believe this to also be a non-ideal situation (especially given the two-party system where neither represents the working class). However, aren’t there at least party primaries, so that one can choose which candidate from the dominant party “runs” for the uncontested election? Whereas in USSR the candidates were chosen by the Party and not the electorate directly. (my understanding of the US electoral system is lacking, so I may be wrong here).

    That’s why I stressed reading Blackshirts and Reds, which dispels the mythology and takes a critical, nuances look at the USSR.

    Thanks for the recommendation! I’ve started to read it a while ago, and mostly agreed with the contents. I’ll have to pick it up again.


  • balsoft@lemmy.mltoMemes@lemmy.mlYour kids are gonna love it
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    1 month ago

    Soviets were de-facto abolished after 1936 (not due to the constitution itself, rather “by tradition”). While there technically were elections, in almost all cases there was only one candidate. The three of my grandparents that I grew up with (all proudly working-class - teacher, engineer and doctor, born in 1930s), never participated in elections with more than one candidate until Perestroyka (at which point the communist project was on its deathbed).

    Note that I’m not even anti-USSR, it’s still markedly better than the bullshit capitalist systems. There actually was plenty of workspace democracy, and some local democracy, but I don’t think we should glorify it as some bastion of democracy. There still unfortunately was a kind of ruling class - the Party and MGB/KGB (but I should note that it was much easier for a working-class person to join their ranks than it is in capitalist “democracies”). Rather, learn from what it got right, and fix what it got wrong.



  • Nah, cheap phones often have their bootloader unlocked/unlockable. Really happy with my POCO M5 running modified AOSP. Also, unlike every expensive phone nowadays, it has 3.5mm jack, SD card slot, and exceptional battery life for hiking/trekking (it survives 5-6 days as just a camera+map phone with all power saving on, in comparison people with flagships typically only last 2-3 days with the same usage and power-saving techniques).





  • I’m not sure you should “cheap out” on headphones per se. The really cheap ones are usually horrible, both in terms of sound quality, usability and comfort (well, except for wired Apple ones, allegedly, though they never fit me right). It’s just that it makes no sense to go for really expensive ones, unless you’re really into audio and love hearing the tiny sound reproduction differences between them, or enjoying the different tech etc. The middle ground of $50-$100 for in-ears and $100-300 for over-ears will often offer you good/great/excellent sound quality and the same usability&comfort as more expensive ones.


  • Problem is not how weak or strong the encryption is

    Here it’s definitely part of discussion. The context was

    It’s encrypted anonymous communication capabilities.

    It’s barely anonymous, and poorly encrypted. The latter is the reason Durov is in custody while Signal devs are scott free. He could easily turn illegal stuff over to French authorities, but doesn’t.

    The bigger problem is that people somehow assume this a huge threat, while all previous cases didn’t involve anything like that.

    There have absolutely been cases where a backdoor/weakness/lack of encryption used to catch criminals before: https://en.wikipedia.org/wiki/Operation_Trojan_Shield https://en.wikipedia.org/wiki/Ennetcom https://en.wikipedia.org/wiki/EncroChat . I distinctly remember that there were also arrests of opposition activists in Russia based on personal messages in VKontakte, but can’t find the news right now.

    real criminals do their stuff everywhere (especially on telegram) for years, staying safe.

    Some are staying safe, others are being caught precisely because of this.

    Problem is not how weak or strong the encryption is, but that once you are under oppression and do opposition activities, you’re going to learn by yourself how to deal with it.

    Using better encryption schemes is definitely part of that.


  • Toy may call it TLS but it’s a custom protocol.

    Sure, it’s mtproto. The security it provides for non-encrypted chats (which are the absolute majority of chats) is not any different from just having TLS for transport. It’s potentially even worse as it’s not as well-audited.

    Data is not kept unencrypted on their servers, according to their docs.

    That just means that they store both your data in some encrypted way and the key. They can still read it trivially. You don’t even have to know the protocol to understand why: you can add new devices without having any other device online, and read all non-secret chats. It might also just mean disk encryption, in which case it’s plain-text in RAM while the server is running.


  • Hoe do you self host a nix package repo & install nix packages from 3rd party repos? Is this even possible.

    So, one aspect of this has already been answered by @Klaymore@sh.itjust.works . If you just want to package some stuff yourself, then do it (look at various NUR repositories for inspiration), put it in some git repo (or even a .tar.gz somewhere), and then fetch it from your NixOS config, either with flakes or þe olde way with let myPkgs = import (builtins.fetchGit { url = "https://..."; rev = ""; }) {}; in ....

    Another aspect would be providing a substituter/“binary cache” for your repository, so that its users wouldn’t need to build everything from source. This is a tad more complicated, as you have to set up some form of CI+CD, a place to host the cache, and your users would have to configure their systems to trust your build infrastructure.

    It’s all quite doable, and if you have some CI system&s3 bucket ready, boils down to nix copy $(nix build --print-out-paths) --to s3://your.hosting/your-cache with some authorization and error handling. There are also some readily available services that do it for you, like https://nixbuild.net, https://garnix.io, and https://cachix.io; however, be prepared to pay for the convenience.

    Then, on the user end, you’d have to add extra-substituters = https://your.hosting/your-cache; extra-trusted-public-keys = <...> to ~/.config/nix/nix.conf, and it should all mostly work.

    Examples of complex 3rd party repositories with a binary cache would be both aforementioned Chaotic and Nixified AI, and a more unusual haskell.nix.