Paul Chiusano

Functional programming, UX, tech


About my book

My book, Functional Programming in Scala, uses Scala as a vehicle for teaching FP. Read what people are saying about it.

Popular links

Unison: a friendly programming language from the future the worldwide elastic computer (coming soon)
Type systems and UX: an example
CSS is unnecessary

Some simple email filters to help eliminate email overload

On this blog I’ve mused about the problems with snail mail: anyone with knowledge of your address gets a lifetime ability to cause mail and packages to show up at your house, as many times as they want. Email has the same problem with virtual message delivery. The result is that our inboxes, both physical and virtual, are filled mostly with content whose delivery we never actually authorized. They are mostly noise, and we spend lots of time just processing that noise because there is some amount of signal that we do want to be aware of and respond to with higher fidelity.


When do notifications make sense?

Whether notifications are appropriate depends on the signal to noise ratio of the channel. Twitter, email, facebook, and any general purpose communication channel are all poor candidates for having notifications turned on, because most of the messages are either not relevant or do not require immediate action. It’s better to check in on these when you’re not doing something else or want to take a break from the “real work” you’re doing or “real life” you’re living.



First: a story. Alice and Bob are sent to an earth-like planet and given the task of finding its highest point. Unfortunately, they are initially given only stone-age era technology to work with. The planet is foggy and visibility is only 20 feet or so. Alice and Bob adopt different approaches:


Compositional machine learning

Some random notes I wrote for myself.


If Haskell is so great, why hasn't it taken over the world? And the curious case of Go.

Programming is all about managing complexity. Without good tools to manage it, the complexity of programs becomes mentally intractable for our limited brains and we’d lose control and understanding of our programs (imagine writing a big software system entirely in assembly language).