@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 NixOS
@mangoiv@functional.cafe avatar
mangoiv,
@mangoiv@functional.cafe avatar

@kosmikus well, I hope so, as with all things, only time will tell but this seems like a huge step in the right direction. Really excited for what’s to come.

kosmikus, to haskell
@kosmikus@functional.cafe avatar

The is now 1 year old! In the anniversary episode, Edsko and I will return to the very first topic and consider (un)folds, but now in a more generic setting. Live on YouTube 2024-05-01 at 1830 UTC.

https://www.youtube.com/watch?v=QTgRKWGDVr0&list=PLD8gywOEY4HaG5VSrKVnHxCptlJv2GAn7&index=24

mangoiv,
@mangoiv@functional.cafe avatar

@kosmikus neat! The anniversary one I’ll have to watch live, I guess! 😅

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

Guix day 1:

I spent most of the day getting comfortable with Guile and the basics of Guix services.

Followed the "perfect hacking setup" manual section (I'm lucky, I'm using Emacs). Geiser is okay-ish, but fails a lot of times (can't jump to definition in g-expressions for instance). Overall, the builtin yasnippets, and paredit are good and useful, geiser fails to jump to definition too many times to be really useful.

I have a fully functional sway/pipewire/xdg-desktop-portal setup. Costed me quite some headaches.

Guix home is super nice and definitely more integrated than home-manager.

I migrated ~60% of my laptop NixOS configuration. The remaining 40% are going to be pretty painful to migrate, Guix is currently lacking some features to do so (writers, secret management). I'll probably have to write the missing features to continue the migration, but I'm not comfortable enough with Guile/Guix to do so yet.

I packaged my first package (power-profiles-daemon) and wrote a service for that.

I really like the Guix service system. A lot more than the NixOS module system.

Tomorrow, I'll have to face my nemesis: mailing-list-powered patches. I'm 6 commits ahead of my Guix channel, it's time to reduce the stack and start cleaning/upstreaming the changes.

I'm not in love with Guile yet. Part of it probably comes from my inexperience, using it is still painful and slows me down a lot.

I hit a massive roadblock at some point: the guile error message was lying to me. I had a module with an error in it, and instead of throwing an error message, Guile was lying to me and telling me I was not loading this module, and giving me a hint explaining me how to load the module. But, I was already loading the module!! Gazlighted by the interpreter :D

Took me a good 2h before realizing the interpreter was lying to me. I need to find a minimal reproducer to send to the email list.

Massive kudos to @ekaitz_zarraga who helped me in the process :)

mangoiv,
@mangoiv@functional.cafe avatar

@mic92 @picnoir while you’re on it, can you make guix-disko, i will not install a single OS without it anymore. 😅

shooboo, to random
@shooboo@hachyderm.io avatar

This sort of ass-hattery is the reason why Apple had to burn through billions trying to build its own car, and also why Mercedes-Benz and the likes will probably cease to exist in a few years. https://mastodon.social/@verge/112355377245296750

mangoiv,
@mangoiv@functional.cafe avatar

@shooboo the faster all these car companies die, the better for all of humanity, let’s be frank. So I’m always happy seeing these

mangoiv, to random
@mangoiv@functional.cafe avatar

Say we have some argument with some type t, why can we not use TH to

  • capture this type
  • pass it as argument to the TH function?

This feels quite straight forward. But I guess there’s no straight forward way to „pick“ which variable to capture except for calculating the connection between the type variable and the function it’s used for

mangoiv, to haskell
@mangoiv@functional.cafe avatar

I wanted to declare something of type Code m a -> m Exp so I can pass the type variable of the typed code to a function used within the untyped code (which I have to do because TTH will not allow me a polymorphic function where I don’t name all type variables in the AST within the Code) but of course this doesn’t work because „untyped code cannot appear in type splice“ ARGH

kohnzn, to random German
@kohnzn@chaos.social avatar
mangoiv, (edited )
@mangoiv@functional.cafe avatar

@kohnzn da gabs noch so n anderes, haben Sie das auch

mangoiv,
@mangoiv@functional.cafe avatar

@kohnzn dachte das sind Sie

Z, to random
@Z@jorts.horse avatar

disturbing the comfortable and comforting the disturbed

mangoiv,
@mangoiv@functional.cafe avatar

@Z this a xe iaso quote?

mangoiv, to NixOS
@mangoiv@functional.cafe avatar

sudo is unmaintained on

all thanks to the great work of the determinate systems community.

mangoiv,
@mangoiv@functional.cafe avatar

@will_r_s_hansen I mean there will probably be a maintainer in the next week. This is mostly an „akshually“ because @delroth left. Which is much more sad but makes for a less polemic post.

mangoiv, to random
@mangoiv@functional.cafe avatar

What the hell of a dumpster fire is the nix community rn, it feels like people are now actively trying to burn down the project 🥲

kohnzn, to random German
@kohnzn@chaos.social avatar

würdet ihr so weit gehen und an einem computersystem einstellungen vornehmen?

mangoiv,
@mangoiv@functional.cafe avatar

@kohnzn Würde an einem computersystem einstellungen vornehmen aber das mit dem gehen würde ich stark von der Entfernung abhängig machen.

mangoiv, to random
@mangoiv@functional.cafe avatar

Tomorrow the process against the fascist Bernd Höcke starts in Halle, he used a forbidden slogan of Nazi Germany’s SA.

I will be there to stand against the Nazis he has invited from all over. Please come if you have the chance and stand in for a well-fortified democracy in Germany!

https://www.halle-gegen-rechts.de/482-afd-stoppen-juristisch-politisch-gesellschaftlich.html

mangoiv,
@mangoiv@functional.cafe avatar

Even though Höcke invited it all his fascist friends, none came! Only the protesters are there and loud. Lovely experience.

bgamari, to random
@bgamari@mastodon.social avatar

The third and final alpha release on the path to GHC 9.10.1 is now available!

https://discourse.haskell.org/t/ghc-9-10-1-alpha3-is-now-available/9336

mangoiv,
@mangoiv@functional.cafe avatar

@bgamari awesome! Thank you for your work on making these available! ❤️

mangoiv, to random
@mangoiv@functional.cafe avatar

Thank you @pluralistic for this blogpost, I will now refer everyone who wants to talk about their lord and savior the almighty AI to this:
https://pluralistic.net/2024/04/01/human-in-the-loop/#monkey-in-the-middle

maralorn, to programming
@maralorn@chaos.social avatar

current status: calling a executable from typed template

mangoiv,
@mangoiv@functional.cafe avatar

@maralorn unsafeCodeCoerce time

maralorn, (edited ) to haskell
@maralorn@chaos.social avatar

After extensively using the library for half a year at work I have now played around with the library again. I am amazed by how much more helpful error messages are with . It’s an amazing library and I would recommend it over whenever you have the choice.

mangoiv,
@mangoiv@functional.cafe avatar

@maralorn @pmidden how’s the “abuse of type system” lock in? I imagine it’s what you’re talking about with the “depend on optics-core”?

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

@maralorn yuh I just mean like often, when you have a heavy type directed eDSL, they’re optimised for a specific purpose. That means it adds a significant amount of churn if you want to do anything yourself. One example of that is polysemy. Another one is squeal-postgresql

mangoiv,
@mangoiv@functional.cafe avatar

@maralorn sounds really good! I think I might actually wanna try them at work.

mangoiv, to random
@mangoiv@functional.cafe avatar

As a human I must say that I feel like there’s something intrinsically good in humans doing art, no matter whether it can be considered “professional” or suited for some purpose other than giving the human a feeling of purpose and being able to create.

Even if completely decoupled from the political, environmental and ethical implications as well as the achievability of AGI, I don’t think there’s any point in pursuing it, if only one person on this planet feels like their purpose has been taken.

Please leave intrinsically human domains to humans.

mangoiv, to random
@mangoiv@functional.cafe avatar

I think this is this cyber security thing that they’re all talking about, right?

https://eldritch.cafe/@Lugrim/112258207338842046

terrorjack, to random
@terrorjack@functional.cafe avatar

hmm, someone worked on a parallel quickcheck (paper accepted for ifl): https://github.com/Rewbert/quickcheck

mangoiv,
@mangoiv@functional.cafe avatar

@terrorjack thank you! Lovely ❤️

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