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

Shoutout to @hecate for https://flora.pm/.

It’s just so awesome to have a fast, modern UI for hackage that really suits all your needs!

#haskell

lyxia, to haskell
@lyxia@mamot.fr avatar

Bluefin-algae, an algebraic effect library using the Bluefin effect system. #Haskell
https://discourse.haskell.org/t/bluefin-algae-algebraic-effects-in-bluefin/9470

mangoiv,
@mangoiv@functional.cafe avatar

@lyxia finally someone uses the native delconts! ❤️
Thank you for making this :)

mangoiv, to random
@mangoiv@functional.cafe avatar

https://git.mangoiv.com/mangoiv/haskell-note

Making good progress but there’s so much boilerplate. I should write a framework.

Also quite tva pity you have to do everything yourself. Spent an hour just to be able to use TOTP with servant-auth

Taneb, to random
@Taneb@hacksrus.xyz avatar

Let's see if I can get my NAS up and running today

mangoiv,
@mangoiv@functional.cafe avatar

@Taneb what kinda system is that?

mangoiv,
@mangoiv@functional.cafe avatar

@Taneb some kinda SBC?

mangoiv,
@mangoiv@functional.cafe avatar

@Taneb did you see nixos-aarch64-images? Might be a good idea to first get a basic setup running and then use something like nixos-anywhere + disko to attack installing the proper thing. But tbh I’m just guessing 😅

mangoiv,
@mangoiv@functional.cafe avatar

@Taneb packages.aarch64-linux = {
sdcard = nixos-generators.nixosGenerate {
system = "aarch64-linux";
format = "sd-aarch64";
modules = [
self.nixosModules.system
self.nixosModules.users
];
};
};

Do you use this? There’s something weird going on with sd cards, too (for the rpi I just downloaded smth from the hydra) 😅

dpiponi, to random
@dpiponi@mathstodon.xyz avatar

https://www.bbc.com/news/articles/c0kl4glp547o

I blame all the stupid rule based systems for getting your attention. iOS Focus is the most needlessly complex solution to a problem relative to the problem difficulty I've ever seen.

mangoiv,
@mangoiv@functional.cafe avatar

@dpiponi so true. I could never wrap my head around it. Perhaps they should publish a paper on “dnd semantics in post apocalyptic UI design”

mangoiv,
@mangoiv@functional.cafe avatar

@dpiponi no. and I most definitely won’t. 😅

mangoiv, to haskell
@mangoiv@functional.cafe avatar
matthartley, to random
@matthartley@fosstodon.org avatar

Yes, this is legit and is something I've enlisted the NixOS community to help with. I am mysterious like that. It's a work in progress, the community members I'm working with will help me make the final selection.

https://discourse.nixos.org/t/exciting-partnership-announcement-framework-community-nixos-communities-join-forces/44640

mangoiv,
@mangoiv@functional.cafe avatar

@raito cryptpad.fr forms have been my go to. There’s also a form services hosted by the European Union if you wanna go all the way. (As expected it something self made and really hard to use but it has this super official domain ;D)

mangoiv,
@mangoiv@functional.cafe avatar

@raito ouff, that’s unfortunate. I didn’t have these issues, so I wouldn’t know.

kosmikus, to haskell
@kosmikus@functional.cafe avatar

The one-year anniversary episode of the #Haskell #Unfolder is starting in about 15 minutes!

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

mangoiv,
@mangoiv@functional.cafe avatar

@kosmikus 🍿(also where do I find these shirts? 😅)

mangoiv, to random
@mangoiv@functional.cafe avatar

Aha just had a realization; Type parameters in Haskell, if they decide something that is in some Quote m has to be provided before splicing. This seems pretty obvious if you think about it for more than two seconds but I was puzzled as my normal assumption is always “well this information is available at compile time” so I guess what you wanna do is to have an argument that consists of something that carries the type for what needs it in the Quote m and then you pass your other “runtime” argument quoted… this is unfortunate because it means that there’s so much syntactic overhead involved :(

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.

mangoiv,
@mangoiv@functional.cafe avatar

@kosmikus I also hope that it finally becomes a bit more quiet, I can’t see all the “This is the first time X has posted — let’s welcome them to our community!” - “this post was flagged by the community” anymore 😂

mangoiv,
@mangoiv@functional.cafe avatar

@kosmikus in what way? You have a lot more experience in such things so I’d be glad to know why you think this is bad/ makes you feel sadness? I saw that delroth also didn’t have much good to say…

kosmikus, to haskell
@kosmikus@functional.cafe avatar

The #Haskell #Unfolder 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

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