• 0 Posts
  • 16 Comments
Joined 1 year ago
cake
Cake day: June 12th, 2023

help-circle
  • The problem is that when everyone is using their right to deny access to their works to make people give them money, and there is only so much money you can reasonably spend on entertainment and so on per month, people end up abstaining from a lot of things they could otherwise have taken part in for no extra cost.

    I think that the things we pirate have a value: music, movies and games have a value because they are cultural products and vulture is important, software like photoshop has a value because it is a useful tool. Putting up barriers to accessing these things means destroying this value. Having a system where the main way to make money of e.g. music is to paywall it has the “destruction” of a lot of value as its outcome. In some ways streaming platforms like spotify are better in this regard but then that means giving the platform a lot of power over music discovery for example. Spotify doesn’t really do a good job of paying its artists either which is its supposed ethical advantage over piracy.


  • I think that a system where we should abstain from things that are basically free to reproduce (i.e. things you can pirate) is dumb. There are many movies that I probably wouldn’t pay money to but that I’ve pirated. The companies that own the rights to the movie don’t lose any sale they would have otherwise made but I get whatever enjoyment I get from watching the movie at least, so it’s a net win.

    When I pay may bills at the end of the month I also put some money towards paying for things that I’ve pirated that I like, usually with a focus on smaller creators. It doesn’t really feel meaningful to pay for a marvel movie for example. It’s not really a perfect system but neither is artificially limiting the access to digital media.








  • Hmm no, I can’t say that I’ve ever writen code like that. For one, it might be better to use loop :: (a -> Either a b) -> a -> b instead so that you don’t have to sort through the result afterwards with find.

    I’m not sure exactly what you’re trying to do, but maybe using the State monad could be a good idea? If a is an object with fields that you want to be able to read and update that sounds a bit like what you might want to use State for. This can be combined with maybe something from the loop section of Control.Monad.Extra to make the intention of the code a bit clearer.

    If performance is critical you might be better of using a different language anyway (Haskell performance is okay but not amazing) but otherwise I don’t think that this is really gonna slow down your code unacceptably much.


  • Monad transformers are monads that take another monad as a type argument and are for when you want to have severtal kinds of Monads at the same time. If you want to be able to throw errors, have state and perform IO you can use the type ExceptT ErrorType StateT StateType IO a for example.

    IMO the biggest strengths of Haskell are that you can create very powerfull abstractions and that you have a greater ability to reason about your code. This is still true to some extent even if you have a lot of imperative-like State or IO code, so it can still valuable to write in Haskell. Of course, it’s still good to avoid this when possible, and take it as a sign to rethink your design.

    The main reasons why I don’t program more in Haskell are that it can be un-ergonomic to write certain kinds of code (that use IO a lot for example), that it can be hard to reason about space leaks and primarily that it’s basically pointless to convince anyone else at $DAYJOB that writing something in Haskell is a good idea (for not entierly bad reasons, it’s good to have code that’s maintainable by multiple people)


  • We can distribute digital media for almost nothing, yet the way most people and companies make money of digital media is by creating incentives to not consume it. Taking part of digital media has a value and artificially creating barriers to doing this means destroying enormous amounts of value.

    This is clearly a very bad system and piracy is a useful strategy for creating the possibility of something better long term and to keep companies from putting up too large barriers short term. The only reason why we have the convenience of e.g. spotify is because of piracy, without pirates we would likely have something more expensive and less accessible instead.