@mangoiv@functional.cafe
@mangoiv@functional.cafe avatar

mangoiv

@mangoiv@functional.cafe

Your average Haskell + Nix person; I am interested in modern functional programming languages like lean4 and koka, recently also elixir.

Currently finishing Bachelor's and writing Haskell for wire messenger.

Sometimes I build mechanical keyboards.

I am interested in discussions if the goal is to learn something, if you're just trying to persuade me, please leave me alone.

I will post in English and will occasionally boost German (network-)politics related things.

he/him is fine

This profile is from a federated server and may be incomplete. Browse more on the original instance.

mangoiv, to random
@mangoiv@functional.cafe avatar

Don’t host your own mail server.

Don’t do it.

If Google decides it will be the only one not accepting mails from you 50% of the time, then you won’t be sending mail to 90% of your customers. 🥲

Yuras, to haskell
@Yuras@mastodon.social avatar

For unit tests we have test coverage. If we replace unit tests with theorems, should we have some kind of "theorem coverage" then?

mangoiv,
@mangoiv@functional.cafe avatar

@Yuras theorem coverage: 1

(commutativity of addition on the peano naturals)

mangoiv,
@mangoiv@functional.cafe avatar

@Yuras it was a joke

I generally don't explain jokes

just treat it as a bad joke :D

mangoiv, to haskell
@mangoiv@functional.cafe avatar

today I have factored out the fused-effects-loggging package from fused-effects-extras so you can use it without having to depend on squeal-postgresql, I also made the logging there threadsafe.

After doing those changes, I integrated them into my downstream projects, including git-shepherd which means that its loggings is not all over the place anymore :) I also updated its README so you can see the intents theere better.

modern-hoogle also got this new dependency, meaning it now has a smaller dependency footprint.

https://git.mangoiv.com/mangoiv/fused-effects-extras
https://git.mangoiv.com/mangoiv/git-shepherd
https://git.mangoiv.com/mangoiv/modern-hoogle

pmidden, to NixOS
@pmidden@fosstodon.org avatar

So what's currently the nicest way to abstract my flake over system? Some flake-utils? Hard-coded map over all systems?

mangoiv,
@mangoiv@functional.cafe avatar

@pmidden it is flake.parts.

dpom, to random
@dpom@fosstodon.org avatar

I'm considering moving to nix-darwin, and the lack of consensus around flakes is a real stumbling block for beginners. Absolutely no idea if I should start out with them.

mangoiv,
@mangoiv@functional.cafe avatar

@dpom the gripe with flakes is more of an idealistic nature. Everybody thinks channels are shit but we disagree on whether a locking mechanism should be built in to the ecosystem. I don’t think so but I also am pragmatic enough to realise that this is already decided. So pick one of flakes, niv, whatever, but decide based on which implementation you find most helpful, not on whether you think for idealistic reasons flakes should not be part of upstream nix.

mangoiv, to random German
@mangoiv@functional.cafe avatar

Somebody verschlimmbessered nixos-anywhere and now the target machine has crashed and is unbootable. Thank god I can just rollback to the last commit I know was working :)

mangoiv,
@mangoiv@functional.cafe avatar

Issue is I have to go via creating a bootable USB drive :(

mangoiv, to haskell
@mangoiv@functional.cafe avatar

I hope to add the todo function to the GHC's base Prelude and hence opened a proposal with the core libraries committee:

https://github.com/haskell/core-libraries-committee/issues/260

Please do not hesitate to leave a ❤️ and comment if you have something to say on this topic.

If you find any errors or weirdnesses in the proposal itself, please comment under this post, not the proposal.

Thank you!

maralorn, to haskell
@maralorn@chaos.social avatar

I have been appointed to the ghc steering committee. Very excited about contributing to make move forward. Seeing who left the committee there are some shoes left there which I won’t even try to fill.

mangoiv,
@mangoiv@functional.cafe avatar

@maralorn congratulations! I’m sure you’re a great fit! ❤️

mangoiv, to haskell German
@mangoiv@functional.cafe avatar

Currently my favourite function: foldMap! It folds and maps and it is great fun!

mangoiv, to haskell German
@mangoiv@functional.cafe avatar

GHC2024 has landed on HEAD and will be part of GHC 9.10, notable changes include:

  • GADTs + MonoLocalBinds
  • DataKinds
  • LambdaCase

Sadly no BlockArguments (Haskeller appear to love their dollars) and TypeData (time hasn’t come I guess)

Also thank god no ImpredicativeTypes and TypeFamilies

https://gitlab.haskell.org/ghc/ghc/-/merge_requests/12084

Also please thank @nomeata for pushing this forward! 👏

mangoiv, to random German
@mangoiv@functional.cafe avatar

Wolf living in Lower Saxony is fed up with Germany; walks 1300km to the Pyrenees.

Imagine how mad this guy must’ve been.

https://www.tagesschau.de/wissen/wolfswanderung-deutschland-spanien-100.html?at_medium=mastodon&at_campaign=tagesschau.de

mangoiv, (edited ) to random
@mangoiv@functional.cafe avatar

what would interest me is; how do you actually transfer imperative datastructures to functional ones; I have made the experience, that there are some mutable datastructures that are hard to find replacements for and one of them I once got so stuck on that I gave up finding an alternative for.

If you wanna riddle yourself, then here are the requirements: random access in O(1), including updatescons and snoc in O(1)

The imperative version of that datastructure is a simple mutable doubly list; random access is done by storing the pointers to the places you want to access and then just mutating the parts of the list in place; snoc and cons are just inserting a new element.

Thanks for the video again @kosmikus :)

https://www.youtube.com/watch?v=WHVMjMIJnB4

mangoiv, to haskell German
@mangoiv@functional.cafe avatar

https://hoogle.mangoiv.com/

… now looks a bit more like hackage.haskell.org!

Try it out and tell me if you like it (press ctrl shift r to force reload the css)

typeswitch, to random
@typeswitch@gamedev.lgbt avatar

it's my birthday. (-:

mangoiv,
@mangoiv@functional.cafe avatar

@typeswitch happy birthday! :)

cafkafk, to random
@cafkafk@akko.wtf avatar

what’s your favourite nixpkgs package? mine is AAAAAASomeThingsFailToEvaluate

mangoiv,
@mangoiv@functional.cafe avatar

@cafkafk @maralorn btw this is the guy we can have a look at instead of setting packages to null :3

underlap, to haskell
@underlap@fosstodon.org avatar

TFW you cobble together a Haskell program of less than 20 lines of code with one dependency (in addition to the standard runtime) and it takes several minutes to build (the first time around).

mangoiv,
@mangoiv@functional.cafe avatar

@underlap Id be very interested in these 20 lines! Thanks in advance :)

mangoiv,
@mangoiv@functional.cafe avatar

@underlap thank you :)

mir, to random

what's the Flake equivalent of in the modules section? tryna make my mac flake updateable

mangoiv,
@mangoiv@functional.cafe avatar

@mir do you mean how you can use modules with flakes? In that case https://flake.parts

mangoiv, to random German
@mangoiv@functional.cafe avatar

nix-path-info —json —recursive <some out path> is really nice. It gives you the direct dependencies and derivers of all (transitive) dependencies of an out path

picnoir, to random
@picnoir@social.alternativebit.fr avatar

Just received my new headphones! A pair of Beyerdynamics DT-770.

I've been happily using the same beaten up mdr-7506 for the last 8 years.

I wanted something with a better passive noise reduction for a while: as much as I love the neutral sound of the mdr-7506, it's terrible when it comes to reduce the surrounding noise/music. That's a somehow big issue when your partner is a music performer and need to practice a lot 🫢

So far I'm happy, the passive noise reduction is much better! Worth the money :)

The build quality seems rather good. The lower end of the spectrum sounds a bit more "full". It does not completely obliterate the mids, so I guess it's fine :)

mangoiv,
@mangoiv@functional.cafe avatar

@picnoir I have a pair of these as well. Extremely comfortable. Wore them during Covid every day for 14+ hours. Upgraded to the 1990 at some point but honestly not worth the money for my taste as a non audiophile.

mangoiv, to random German
@mangoiv@functional.cafe avatar
faraiwe, to random
@faraiwe@mastodon.social avatar
mangoiv,
@mangoiv@functional.cafe avatar

@faraiwe @hecate :blobcatjustright:

picnoir, to random
@picnoir@social.alternativebit.fr avatar

https://github.com/NixOS/nixpkgs/pull/254405 has been merged.

From now on, the Nixpkgs flake registry key points to the Nixpkgs pin used by your NixOS host.

In practical terms, it means you'll no longer have to re-download the whole universe for each nix shell call on NixOS anymore.

FINALLY!

Massive kudos to the author and the people who stepped up to fix this disastrous status-quo.

mangoiv,
@mangoiv@functional.cafe avatar

@picnoir I’ve been using a local registry and default flake for a while and I wouldn’t want to go back. To be able to just do nix run theThing and it does what I expect it to do is awesome.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • kavyap
  • DreamBathrooms
  • tacticalgear
  • mdbf
  • InstantRegret
  • magazineikmin
  • Youngstown
  • thenastyranch
  • rosin
  • slotface
  • Durango
  • cubers
  • ngwrru68w68
  • anitta
  • cisconetworking
  • GTA5RPClips
  • modclub
  • tester
  • khanakhh
  • everett
  • provamag3
  • osvaldo12
  • Leos
  • normalnudes
  • ethstaker
  • megavids
  • lostlight
  • All magazines