Ciao!
When I started the PinkLetter, I decided to write the newsletter I wished I could subscribe to. I wanted to escape all the noise and amplify only the signal. In the words of Sum 41, I wanted All Killer No Filler.
I got a ton going on this week, more than what my personal productivity system can handle. There's no way I could have written a killer article for the blog—cause I normally write excellent stuff, huh?
Sadly, this breaks my posting streak. Until this week, I published at least one post a week since the beginning of the year.
But, as Cal Newport says, there is no confetti coming down from the ceiling for stubbornly sticking to a plan. The goal is to make the most meaningful progress given the situation at hand.
One thing for sure, I wouldn't miss our weekly appointment with the PinkLetter! So let me share some news.
When I started learning Haskell, I struggled to find places to deploy it. Doing silly textbook exercises was boring. At the same time, doing substantial work with it would have been a risk.
Somebody encouraged me to try writing scripts in Haskell at Monadic Party last year. I never looked back: it's approachable, useful, and fun.
That is why I'm writing an article for the Advent of Haskell about scripting. Here's a draft of the code I'll use for the post.
What would you like me to cover? Is there anything about the code that makes you wonder? Any questions about scripting in Haskell?
This week I want to feature more folks who are coding in public their Advent of Code.
Want to join the circle? Please, send me a message!
UX request: Tell, don’t hide by @jessitron
Y’know how sometimes a particular logged-in user isn’t authorized for some option, so you don’t show it to them?
Don’t do that to people. Tell me it’s there, tell me I can’t do it, tell me who can.
(Riccardo: Jessica always manages to open my eyes. Simple and powerful.)
Parser Combinators: a Walkthrough by Antoine Leblanc @ Hasura
Today, I want to explore Parsec, and most specifically how Parsec works. Parsing is ubiquitous, and most Haskell programs will use Parsec or one of its variants (megaparsec or attoparsec). While it’s possible to use those libraries without caring about how they work, I think it’s fascinating to develop a mental model for their inner design; namely, monadic parser combinators, as it is a simple and elegant technique that is useful beyond the use case of parsing raw text.
(Riccardo: I was shocked by the clarity of the walkthrough. But when I read the author was Antoine, it explained everything! Parser combinators are the place where I grokked many type classes.)
AdventOfCode Day Ten Part Two by yours truly
(Riccardo: Basile Henry wrote such an elegant solution that I had to dig deeper. The code is in Rust but, together with the explanation, it should be approachable regardless of your background.)
Bind The Gap is a monthly magazine about Haskell and Functional Programming in general.
It discusses hot news in the Haskell ecosystem, describes recent events, educates about FP concepts, and provides a view on diverse language areas from experienced Haskell users and active community members.
(Riccardo: I'm amazed by how many cool things Veronika and Dmitrii keep releasing.)
That is all for this week folks, stay awesome!