suppi

@suppi@fosstodon.org

Functional programming, compilers, virtual machines, gamedev, web.

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

suppi, to haskell

I wrote a blog post about implementing kind inference in

https://gilmi.me/blog/post/2023/09/30/kind-inference

To skip the explanations and go straight to the code, see the gist:

https://gist.github.com/soupi/ee78682851f396dc9b1953e9a72b9085

suppi, to haskell

I wrote a prototype implementation of kind inference for simple data type definitions using unification-based constraint solving.

It can infer data types like this:

Cofree f a =  
 | Cofree a (f (Cofree f a))  

See the code and examples in the gist:

https://gist.github.com/soupi/ee78682851f396dc9b1953e9a72b9085

suppi, to haskell

"Learn Haskell by building a blog generator" - the free and project-oriented beginner's guide to programming, has a new domain!

https://learn-haskell.blog

suppi, to random

This (fairly common) Haskell learning curve is why I wrote my book.

https://raw.githubusercontent.com/lsmor/snake-fury/main/assets/Haskell_learning_curve.png

suppi,

@mostalive Haskell programming can take you a lot of places. For me after 10 years I still feel comfortable with 'functional core, imperative shell' and never bothered with effect systems.

suppi, to keyboard

Are there any decent pre-built, tenkeyless or smaller, split keyboards costing less than 200$ (Preferably wired and with mechanical switches)?

suppi,

@ogi they look good and well priced, but don't seem to be split unless I'm missing something?

suppi,

@neverpanic @ogi but slightly over budget :( still thank you

suppi,

@araitta looks like an reasonable option. Thanks!

suppi,

@ogi I don't think that's an option for me but thank you

suppi,

@ogi thanks but I'm not interested in kinesis.

dpwiz, to haskell
@dpwiz@qoto.org avatar

I should write a huge text about how is a great language and is getting better all the time.
Just to dilute the stream of negativity constantly appearing on feeds.

Maybe you should too.

suppi,

@reidrac @dpwiz negative articles just get a lot more attention than positive articles.

marhop, to haskell

Thank you @suppi for writing https://lhbg-book.link/ - a great practical introduction to with everything you need to know to get started with real-world projects! Really enjoyed reading it and wish I had found this earlier. 👍

suppi,

@marhop really glad to hear you enjoyed it!

suppi, to random

Sometimes I need to write so I can sleep

suppi, to random

An important aspect of 'project maintenance' is figuring out what the code is doing after being away for a while (debugging).

In the Haskell world since we don't have a step-deubgger our tools for figuring out what's going on are reading code and simulating it in our heads, and trace debugging (printing values at useful locations).

I often have a hard time simulating complex flows in my head, so I use trace debugging a lot to have a concrete scenario from which I can extrapolate.

suppi,

An easy way to make your (or my) life more difficult is to not optimize for trace debugging.

For example, using features that make the flow of the program non-obvious or go all over the place (e.g. extensive use of typeclasses dispatch), not putting Show instances on every data type, encoding information in the type level so it's not examinable at runtime, using functions to describe data, etc.

suppi,

When using Haskell it can often be quite tempting to reach out for solutions that limit your ability to examine your program's behaviour at runtime and look at concrete cases.

But this leaves us with just reading code and hoping we have enough ram in our heads to keep track of everything important and not assuming things that aren't correct (trace debugging doesn't lie, but brains do).

How well you can examine a program at runtime greatly impacts how easy it is to maintain a Haskell project.

suppi, to random

My patience on social media has grown incredibly thin. If I smell unnecessary negative energy or people being antagonistic just for kicks, I click the mute/block immediately. I've got too much stuff going on to pay attention to this kind of behaviour on the internet.

suppi, to random

Ooo, a thread I could contribute to on lobste. Unfortunate that I don't have an account.

suppi,

@reidrac I feel it is a bit better, and I respect the idea of invites only, but it also means you won't get a link to my blog post :)

suppi,

@abnv Thank you!
I think it's probably best if I don't start posting in another website 😅

samir, to random
@samir@functional.computer avatar

SMASHED MY TOE IN A DOORFRAME
AND NOW IT HURTS TO WALK
IBUPROFEN, SOME BLEEDING
DON’T GIVE A FUCK IF THE NAIL STARTS PEELING

suppi,

@samir I hope you feel better soon!

IdoKendo, to rust

Started working with in a professional environment! 🙌 Most of the dev team is still working with but we've identified the need for the speed and power of rust in several domains. Any advice for a smooth transition?

suppi,
suppi,

@IdoKendo I also think that establishing some metrics like ci time, setup time/complexity, ramp up time, build time, dev time, development feedback/experience, comments/code ratio, publishing process, and of course performance, and optimizing those is very beneficial. Developers want to work with things that make their lives easy so if you can optimize that I think more people would be open to the experience.

samwho, to random
@samwho@hachyderm.io avatar

Nothing compares to how good it feels seeing this in Steam.

suppi,

@fishidwardrobe @samwho My friend, proton is truely a game changer for gaming on linux and it comes with steam. Do look it up!

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