Paul Chiusano

Functional programming, UX, tech

TwitterGitHubLinkedInRSS


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
unison.cloud: the worldwide elastic computer (coming soon)
Type systems and UX: an example
CSS is unnecessary

The limits of procedural generation and lazy simulation in games

I was watching this video about No Man’s Sky, a game that’s being advertised as “a science fiction game set in an infinite, procedurally generated universe”. One of the creators mentions here that each planet in the universe of the game is fully determined by a single 64 bit seed. From this one seed, every “every blade of grass, tree, flower, creature” is generated, and it’s all done lazily, as the world is observed by the player.

More


A new project: Unison

In between consulting work, wrapping up the book, and enjoying spending time with my new daughter, I’ve been doing some work on a new side project. I don’t have anything to release just yet, but it’s an exciting project for me and I decided I should start talking about it.

More


Unimaginative naysaying in tech discussions

It’s the early days of man, a chilly day, and Alice and Bob are attempting to start a fire by rubbing sticks together. It’s a struggle, on account of some freezing rain earlier in the day that’s left the sticks damp. Suddenly, there is a brilliant flash of light, and a mysterious portal opens up next to Alice and Bob. A Stranger steps through carrying a blowtorch.

The Stranger explains he is from the Future and has come to speed along Alice and Bob’s technological evolution. He demonstrates use of the blowtorch and has a roaring fire going within a minute or two. He explains how the torch works by burning a substance called butane.

Bob’s immediate response: “Look Stranger, I don’t know who you are, but I don’t like your elitist tone, and I’m going to keep starting my fires by rubbing sticks together. If I start using your so-called ‘blowtorch’, it’s going to be a real problem finding ‘butane’ fuel for it.”

More


When the fancy technique that seems relevant is the wrong tool (a note of caution on zippers)

Update: I changed the title of this post and toned it down considerably to be less trollish. There was also some confusion / disagreement about the meaning of the term “zipper”, so I’ve tried to clarify that as well.

More


CSS is unnecessary given a layout language with means of abstraction and combination

CSS, a language for specifying visual appearance on the web, is … so complex that it has never been implemented correctly; yet, successive versions specify even more complexity. At the same time, it is so underpowered that many elementary graphic designs are impossible or prohibitively difficult, and context-sensitivity (or anything computational) must be addressed externally. Most CSS lore is dedicated to describing the tangles of brittle hacks needed to circumvent incompatibilities or approximate a desired appearance.

Bret Victor

More