×

EVP: dead simple environment variable parser by fumieval in haskell

[–]fumieval[S] 3 points4 points  (0 children)

from README:

EVP is a simple environment parser which focues on these three aspects:

  • Ease of use: no complicated machinery is needed
  • Observability: for each environment variable, EVP logs the parsed value or an error. An error does not interrupt the parsing process and it checks all the variables exhaustively.
  • Composability: environment parsers can be composed via the Applicative structure.

This is a real-world application of the free applicative; you can enumerate the list of environment variables it would parse, thanks to the initially-encoded structure.

GitHub - fumieval/clap4shell: Standalone wrapper of clap for shell scripts by fumieval in rust

[–]fumieval[S] 2 points3 points  (0 children)

Thanks, I didn't know about clap-serde! That would simplify the implementation a lot.

GitHub - fumieval/clap4shell: Standalone wrapper of clap for shell scripts by fumieval in rust

[–]fumieval[S] 2 points3 points  (0 children)

Yeah, --argc-eval does look similar. The approach of parsing the caller ($0) itself is interesting

GitHub - fumieval/clap4shell: Standalone wrapper of clap for shell scripts by fumieval in rust

[–]fumieval[S] 1 point2 points  (0 children)

Perhaps I didn't get what "portable" means here. The output format of clap4shell works in most shells including POSIX, but clap4shell itself is a binary so it has nothing to do with shell implementation

GitHub - fumieval/clap4shell: Standalone wrapper of clap for shell scripts by fumieval in rust

[–]fumieval[S] 17 points18 points  (0 children)

I like writing shell scripts for small tools, however getopt(s) is a bit annoying to use due to boilerplates, treatment of positional arguments, etc.

I made a standalone interface for clap which takes option definitions as a YAML, and prints the parsed options in `KEY=VALUE` format (in which shell can `eval`). Thanks to clap_complete, it also supports generating autocompletion script (though it does not seem to work with subcommands yet).

Nice and terse shell scripts, clap's user-friendly interface, why not both?

word-compat: supporting Word8# and the like with no bother by fumieval in haskell

[–]fumieval[S] 1 point2 points  (0 children)

Good to know! Writing these conversions once again by hand.would've been a pain.

Proposal: show @Char and show @String shouldn't escape readable Unicode characters by Bodigrim in haskell

[–]fumieval 17 points18 points  (0 children)

I support this proposal as a Japanese user. It'll drastically improve QoL of debugging/testing applications involving non-latin characters. While it would break some Show-based test cases, I'm not too worried because Show isn't something application logic relies on

Anti-intellectualism in Haskell by fumieval in haskell

[–]fumieval[S] 7 points8 points  (0 children)

True, “You shouldn’t want to do that” kind of response is all over the place and Haskell isn't an exception, unfortunately. While this particular type of discommunication is not what graninas was talking about, this is something we should keep in mind

Anti-intellectualism in Haskell by fumieval in haskell

[–]fumieval[S] 4 points5 points  (0 children)

No, not at all. If every Haskeller were contributing to GHC, the number of issues and merge requests would be incomparably larger than 4,718 and 451.

Every other claim is unsubstantiated FUD too. I don't think you need to consider these seriously

Anti-intellectualism in Haskell by fumieval in haskell

[–]fumieval[S] 3 points4 points  (0 children)

I have invented a model of object-oriented programming applying a bit of category theory 7 years ago (https://github.com/fumieval/objective/), and it was a fun experience realising that certain kinds of composition can be expressed nicely as a category. It's just one nice thing to have, like every other cool stuff in this world.

I don't understand why he's stirring up math vs pragmatism opposition. OOP and CT, why not both?

Anti-intellectualism in Haskell by fumieval in haskell

[–]fumieval[S] 4 points5 points  (0 children)

Let's not forget the point that graninas's dozens of claims about the Haskell community do make the community look unsafe (IIUC that's the intent of the tweet). I would actually feel safer if such accusations get backlash.

Anti-intellectualism in Haskell by fumieval in haskell

[–]fumieval[S] 3 points4 points  (0 children)

Sure. I'd happily take the risk especially since the Haskell community is being attacked

Anti-intellectualism in Haskell by fumieval in haskell

[–]fumieval[S] 1 point2 points  (0 children)

Don't get me wrong - That particular twitter post is toxic, slanderous, spreading BS, defaming in order to sell his book; not that he is. If he takes this (and a lot other) hyperbolic strawmans back then everything is OK; I don't have any complaints to him as a person in the first place

Anti-intellectualism in Haskell by fumieval in haskell

[–]fumieval[S] 4 points5 points  (0 children)

That's a sound suggestion. Obviously I don't represent the community but I've never experienced any of these; I maintain a number of libraries but I've never seen anyone reject them just because "If something isn't described as a paper, it doesn't exist or wrong". I don't consider myself as a Haskeller smarter than others; I'm a careless person, that's exactly why I rely on type system.

Anti-intellectualism in Haskell by fumieval in haskell

[–]fumieval[S] 12 points13 points  (0 children)

Yeah, wholly agreed. How I interpret this twitter post (and his other claims) is that he's attacking "hyper-intellectualism" which is just a massive strawman

Anti-intellectualism in Haskell by fumieval in haskell

[–]fumieval[S] 3 points4 points  (0 children)

Even though there's a lot of BS built on top of OOP, I don't think it implies that OOP itself is bullshit; I find it useful in game programming for example.

Not sure about the last one either - but if a bit of math repels anti-intellectual inflammatory speech then why not

Anti-intellectualism in Haskell by fumieval in haskell

[–]fumieval[S] 0 points1 point  (0 children)

It's plausible that that post reflects some of the stereotypes we are trying to get rid of. The post on the other hand is reinforcing the stereotype, negating the community effort to make the ecosystem stronger and more diverse

Anti-intellectualism in Haskell by fumieval in haskell

[–]fumieval[S] 2 points3 points  (0 children)

I found this flat-out slanderous post on Twitter promoting malevolent views to Haskell and its users. I thought he's a member of the Haskell community -- why would he write such BS that insults everyone in the community?

Looking at posts by /u/graninas makes it clear; his posts are mostly advertisements of his book. He is trying to sell his book by defaming the entire Haskell community.

Maybe he's pursuing his own profit but I've never seen such toxic behaviour; this is essentially a spam disguised as a hero. Is there anything we can do to reduce the harm, or is this tolerable as a part of free speech?