Crazazy [hey hi! :D]

  • 0 Posts
  • 15 Comments
Joined 2 years ago
cake
Cake day: June 19th, 2023

help-circle
rss

  • As a nix user, guix looks legit nice but it took me until 2 days ago to actually find community projects made for guix(https://whereis.みんな/) . Sometimes I just wish they used the same store and daemon as nix so that nix packages can work as guix dependencies and vice versa.

    (Also major thing stopping me from using guix is I don’t get service types at all, let alone how you’d define your own service :( )



  • What are you on about? The open letter was specifically advocating against sponsorships and advertisements of the Military Industrial Complex. I.E. private companies who specifically try to turn a profit from countries going to war. Companies that literally earn money over people’s dead bodies. I think the people that wrote the open letter were very aware that being sponsored by the military was something that is hard to avoid. However there is a clear difference between being sponsored by a military and being sponsored by, like, literal death merchants



  • ah I think that’s where I’m at odds with a lot of lemmy NixOS users then 😅, since I am and have always been pretty hesitant to recommend NixOS to anyone in particular. I find the upfront costs of NixOS too big for me to recommend the OS to anyone who wasn’t already looking into it and knows its downsides and upsides.

    I do agree however on the fact that using nix is purely beneficial. It doesn’t hurt if you just add a .nix file to your project, since it doesn’t do any harm to an already existing project. It can just install your build tools and then consider itself done, and if you don’t happen to like nix after all, the new installer makes uninstalling easier than ever. There is pretty much no downside to downloading the package manager, something I can’t say about the OS.

    Having said that, I don’t think nix should be the end-all be-all standard in package management. I’m sure there will be other package managers that will be better than “nix but with yaml sprinkled in”, and are capable of improving the state of the art. At least, that’s something I hope to happen. For example, I have reservations about using a full-blown programming language for doing my project configuration (see people’s problems with Gradle for why you might not want that). I think a maven-style approach (where you’d have just limited config options, but can expand the package manager’s capabilities by telling it to install certain plugins (in the same config file!)), could be worth looking into, and I’d be lying if I said I wasn’t on the look out for a potential better nix alternative



  • Alright as someone who likes Haskell and has dabbled in unison before, I believe I can answer all these questions for you:

    • Why is helloWorld there twice?

    It is common in languages like haskell and ocaml to first mention the type of a function, so in this case:

    • the type of helloWorld is '{IO, Exception} (). That is it’s type signature (important for later)
    • the implementation of helloWorld is \_ -> println "Hello, World!"
    • What’s the ' for?
    • What are the () for?

    Here is where I have to get into the nitty gritty of how unison actually works. Unison has what programming language researchers call an effect system. The type signature of helloWorld indicates that it can perform the IO and Exception types of side effects, and these need to be handled. (in this case, they are handled by the compiler, but other types of side effects can be handled by the programmer themselves)
    However, for reasons Unison does not like dealing with eagerly evaluated non-function values with side effects. For this reason, there is '. Essentially, what it does is turn a value into a function that accepts () as it’s argument. We could therefore say that the type signature of helloWorld is also () -> {IO, Exception} (). The last () indicates that, next to it’s IO and Exception side effects, it also returns () as a value. This is because, in functional programming languages, all functions need to return values (or run infinitely, but that is for another topic)

    Now I’ve been used to functional programming for quite a while now, so things that seem natural to me can be absolutely woozy for anyone not used to this paradigm. So if anything still feels vague to you feel free to comment




  • I just embrace impermanence. Fediverse is not much other than some other person’s server, and if the instance owner decides he doesn’t want to host his instance anymore, you’re just gonna have to cut your losses and move somewhere else. It’s not as if the entirety of Lemmy is gonna stop existing at once.

    The real threat to Lemmy’s existence is the maintenance of the software. If that stops, there are 2 options, either someone forks it, or the medium slowly dies out as no one feels like hosting outdated software anymore.

    In that case (which, might I add, is unlikely to happen), you’re gonna have to cut your losses, and move to a different type of social media





  • Wendy’s tried to get into the Netherlands, but couldn’t, because there was already a snackbar (think small fastfood place but greasier) that was registered under the name “Wendy’s” at the chamber of commerce. This spawned a lawsuit. You had Wendy’s, a local snackbar who claimed rights to the name because they were already established, and Wendy’s, a franchise coming from America. They claimed right to the name because they were a franchise, and not just a single fastfood joint.

    To solve this issue, the local snackbar opened up a second location, making local Wendy’s a franchise, and winning them the lawsuit