Stampy

Dev Blog

How We Added Time Travel to Paperless Post

Our designers make our cards beautiful, but our users make them unique. To help them, we’ve built a card editing tool that allows extensive customization. And customize they do: over and over, we’ve seen our users stretch the limits of the design system. In fact, we’ve seen them stretch it, bend it, twist it, crush it, and sometimes even break it—as our customer support team can attest. They experiment, they tweak, they twiddle, and they turn out cards, from the artistic to the bizarre, that we as designers and programmers could never have anticipated. This is a major strength of our site, even when our customers’ creativity fills up the bug tracker, and so editing features have always been a priority. In the past few months, after withstanding a huge holiday rush, we had breathing room to tackle a major new editing feature: a fully reversible undo history.

Functional Concepts for Practical Coders

ActionScript and JavaScript support a lot of fancy concepts like closures, partial application, filter chaining, and function composition. Without a background in functional programming, it might not be clear to you what those things are, or why you’d want to use any of it. Wikipedia is too dense, functional programming language tutorials are too mathematical, Haskell is too weird-looking, and more to the point, why would you want to use any of this stuff instead of clear and simple loops, variables, and inheritance? Why make your code more complicated? Why confuse your fellow coders with weird programming paradigms? Why write functions that make functions that make functions when you could just, you know, write a function?

I’ve written a blog series to convince you otherwise.