Jan. 3, 2021, noon

PinkLetter - Coal or Candy?

PinkLetter (odone.io)

Ciao!

Have you been good in twenty-twenty?

In Italy, I usually had to wait to see if the Befana brought me coal. Luckily, I live in Poland, where the answer comes earlier!

I received a pair of socks for Saint Nicholas Day. This certifies I've behaved. And it's not the only Polish tradition that surprised me.

I have to be honest: I haven't recharged as well as I hoped during the holidays. Am I the only one?

Elsewhere on the Web

Simpler And Safer API Design Using GADTs by Chris Penner

A lot of the writing out there regarding GADTs is pretty high-level research and academia, in contrast, today I'm going to show off a relatively practical and simple use-case. In this post we'll take a look at a very real example where we can leveraged GADTs in a real-world Haskell library to build a simple and expressive end-user interface.

(Riccardo: As always, Chris kills it with a crisp and clear API design case study that compares type classes and GADTs. I learned a bunch of stuff even before he got to the latter.)


Cross-Branch Testing by Hillel Wayne

This was inspired by a few conversations I had last week. There’s a certain class of problems that are hard to test:

  1. The output isn’t obviously inferrable from the input. The code isn’t just doing what a human could abstractly do, it’s doing something where we don’t know the answer without running the program.
  2. The output doesn’t have “mathematical” properties, like round-tripness or commutativity.
  3. Errors in the function can be “subtle”: there can be a bug that affects only a small subset of possible inputs, so that a set of individual test examples would still be correct.

(Riccardo: The idea of cross-branch testing is cool. Also, I didn't know about git-worktree!)


Hotwire - HTML Over The Wire by Basecamp

Hotwire is an alternative approach to building modern web applications without using much JavaScript by sending HTML instead of JSON over the wire. This makes for fast first-load pages, keeps template rendering on the server, and allows for a simpler, more productive development experience in any programming language, without sacrificing any of the speed or responsiveness associated with a traditional single-page application.

Building HEY with Hotwire by Full Stack Radio

In this episode Adam talks to DHH about using Hotwire to develop Basecamp's new email service HEY while shipping only 40kb of JavaScript to the client.

(Riccardo: Hotwire is not a silver bullet. But it's a much-needed reminder that not all web apps require a ton of client-side code. Sometimes JavaScript is just accidental complexity.)


Blob Opera by David Li @ Google Arts & Culture

Create your own opera inspired song with Blob Opera - no music skills required ! A machine learning experiment by David Li in collaboration with Google Arts & Culture

(Riccardo: Something fun because I'm not ready to go back to work yet.)


Do you have any plans for the new year? I'd like to hear about it. Or simply just want to say hi? Your reply to this email gets to my personal inbox.

Gimme a shout!

You just read issue #29 of PinkLetter (odone.io). You can also browse the full archives of this newsletter.

This email brought to you by Buttondown, the easiest way to start and grow your newsletter.