Preferences

thosakwe
Joined 1,024 karma
Software engineer in the SF Bay Area.

Bootstrapping a micro-SaaS business.

Twitter: @tobebuilds Blog: https://tobebuilds.com


  1. I remember being 11 or so and installing this homebrew onto my DS...

    I had NO IDEA what Linux was at the time, but DSLinux helped me deepen my interest in computer science.

    So, thanks to the creators, and everyone who contributed code.

  2. In my humble opinion (I'm still new to Haskell), the best way to do that is to contribute to existing Haskell tooling.

    That's something I'm looking into doing myself. It would be great to help improve tools like cabal and the haskell-language-server.

    I think that will go a long way towards making Haskell more beginner-friendly, and easier to use in production.

  3. You make a valid point about the added complexity of combining parser combinators with functors and other concepts.

    Honestly, if I were writing a compiler, I would go with your approach as well.

  4. Correct, that function doesn't have to parse immediately, but it does have to be aware your monad exists.

    This isn't a problem if you're the one writing the function, but if you're using a 3rd party library that doesn't know about your monad, then fmap can be very useful.

  5. Yes, but if it we're talking about parser monads, then usually you can't apply a function directly to a parser's result without either:

    1. Being within the same monad. For example, you can `bind` a `Parser a` to a function only if it returns `Parser b`.

    2. Performing an actual action and breaking it out of its monad.

    For example, if you're using the Parsec library, and you have a `Parser Int`, you can't get to that int without using a function like `parse`, performs the actual action of parsing input text.

    With a functor, you can compose a `Parser a` within an `a -> b` function, instead of having to return `Parser b` in your function.

    So if you have a `Parser Int`, and you want to turn it into a parser that multiplies its parsed input by 2, you can write `fmap (*2) myParser`, instead of having to write `myParser >>= \a -> return (a * 2)`.

    Parsers being functors means it's easier to compose them with other things, without having to actually perform the parse until you need to.

  6. I learned Haskell this year.

    After reading this article, the conclusion I drew was, "Cool, so I can `fmap` over my parser now and transform what I parse using functions."

    To answer your other questions: I'm not sure it means much for the code that does the actual parsing, nor how you specify the grammar's rules, it's more about being able to transform the output using functions.

    If your static analyzer is a function, you could now write `fmap staticAnalyzer myParser`.

  7. Thanks for sharing this great article. It explained lenses very clearly, without me having to read a paper first.
  8. Another reason is that imperative languages have a lot of business inertia around them. It's expensive to rewrite existing code or switch to a new language, and most businesses can't justify this cost.

    I love functional programming, but I doubt most companies that sell CRUD apps care about it.

  9. I read "Start Small, Stay Small" in 2021. More modern advice is on YouTube instead of books. Try channels like Noah Kagan, or Microconf.
  10. Seeing so many new languages running on WASM is exciting. I wonder if we'll see a language with a just-in-time WASM compiler soon...
  11. I maintained a project like this for several years. My genuine advice to anyone considering creating an open-source library: either keep it super small forever, or make it closed-source + charge for licenses.
  12. I wonder why tree-shaking wasn't always the default for, say, JS bundlers. If a compiler/analyzer knows what the entry point of a program is, as well as any symbols it exports to the outside world, isn't it relatively simple to figure out what's not being used?

    I could be misunderstanding something.

  13. Thanks for the sources. I can concede that most people do not support a reduced or lower-funded police presence.

    As for the second part: someone simply choosing to be a police officer doesn't mean they should be demonized. Complying with the "blue wall of silence" by refusing to take an active stand against police misconduct, however, I believe warrants public backlash. The thing is, far too many officers are content to not say anything. And that is a large part of why they have seen more backlash recently.

  14. I am not an activist, and this is not a manifesto. I don't understand why you brought that up.

    Anyways:

    The fact that most modern countries have police is not evidence that police departments are necessary.

    In addition, the article is about the American police, which are notorious for their history of racial profiling, cover-ups, and numbers of civilian shooting deaths every year. Does most modern countries having police mean this is justified behavior?

    If you could, please provide a link to a survey or study indicating that people who live in "high-crime" areas want more police.

    And even if they did, that doesn't change the reason for the widespread backlash against police in the United States. It's not simply people "demonizing" a profession (which again, people choose to work in).

  15. > Police are a necessary part of modern civilization. Full stop.

    Are you sure? Lots of causes for crime (i.e. poverty) can't be solved by arresting or shooting people. I am convinced that part of the reason police reform is so difficult in the United States is that most people have never questioned neither the history of American policing (which started as slave patrols in many states), nor the necessity for heavily-armed police at all.

    > If they have no repercussions for bad actions, then implement them.

    This is not so easy, when both of the parties with political control in the U.S. receive donations from the prison industry...

    EDIT: Lastly, in reference to your original point, the argument that police officers are being simply "demonized" is missing the bigger picture. Police aren't individual actors - they protect each other, even when they have crossed a line. And it's all by choice.

  16. I'm busy learning art. All of the things I want to make (mostly games) will require good art, so this is as good an opportunity as ever to focus on that.
  17. Yeah... This is the same sort of thing you see with, say, ActivityPub, that makes it a massive pain, if not totally impossible to implement it in a statically-typed language.
  18. How is the existence of NodeJS a bad thing?
  19. Comments like these are absolutely useless and contribute nothing to the conversation at all. There are benefits making a language, and people's goal doesn't always have to be "get as many people to use it as possible."
  20. "Easily" isn't really that true here.
  21. I wish you would put as much effort into listening and understanding other people's experiences as you do trying to find excuses for racism.
  22. The inspiration is OCaml. I've used it a lot, and some of its best features, like sum types, are missing from Dart (and many mainstream languages).

    As for the goal, I just want to finish it for now. I don't intend to publish packages in Bullseye, rather just to use it in projects to consume existing Dart libraries.

  23. If you check out the dev branch of bullseye, I'm currently working on a rewrite, but it's on pause for a few months while I work on an internship.
  24. I never got the hang of Blender in my previous attempts, but I started again with 2.8 in 2019, and the interface made a world of difference. In the past 8 months, I've gone from literally zero knowledge of box modeling to being able to create assets for indie games. I haven't seen any issues with the manual. Actually, combined with the official YouTube tutorials, I've found it extremely easy to find the answers to my questions.
  25. It's not equivalent to that at all. They deleted his Tweet because it explicitly called for gun violence against protestors. That's the ostensible reasoning. Can you see why it might be problematic for the president of the nation to do that?
  26. It's sad to me that nobody would consider a new option unless a FAANG, or otherwise huge company, were backing it.

This user hasn’t submitted anything.

Keyboard Shortcuts

Story Lists

j
Next story
k
Previous story
Shift+j
Last story
Shift+k
First story
o Enter
Go to story URL
c
Go to comments
u
Go to author

Navigation

Shift+t
Go to top stories
Shift+n
Go to new stories
Shift+b
Go to best stories
Shift+a
Go to Ask HN
Shift+s
Go to Show HN

Miscellaneous

?
Show this modal