Premises of WordPress content handling

As we approach the release of WordPress 5.0, which will feature the introduction of the new Gutenberg editor, it is worth taking a look at WordPress’s current model in handling user content.

A page request

Consider the following simplification of the data pipeline for a front-end page request:

Continue reading “Premises of WordPress content handling”

PSA: Double-check your strings for ambiguous contexts

Originally posted internally at Automattic a while ago, I’m publishing the following piece concerning software internationalization (i18n) for whomever it may serve.

Consider the following piece of UI:

trash-verb.png

You don’t need to know exactly which part of your application this is in order to understand the label Trash. Translators and the translation engine, however, will only see this: Continue reading “PSA: Double-check your strings for ambiguous contexts”

Functors & Monads: An Introduction

Following some in-person chats on a number of concepts of functional programming, my team pushed me to try to share and present some of these to a wider audience. Admittedly, finding online resources on FP that are both palatable and reasonably sized is not always easy. This article was written in December 2015 and was my best attempt—in my own perspective and with my own analogies—to talk about what lies beyond the obscure term monad by starting with functors.

Functors

Continue reading “Functors & Monads: An Introduction”

Of vocabulary and contracts

I was asked why one should prefer map over for.

Here’s an analogy: why do we, as a talking species, use different layers of vocabulary? Why do we have abstract terms in our language, as opposed to only concrete terms drawn from tangible things from our physical world? I mean, the Romans did fine without abstract language, right? Or were they limited by Latin? Wasn’t the incredible boom of philosophical thought during the Enlightenment facilitated by the abstraction powers of the German language?

Continue reading “Of vocabulary and contracts”

Formalizing the intuitive

“You might think, well that’s just common sense. But last I checked, computers don’t have common sense. Indeed, they must have a formal way to automate these kind of code optimizations. Maths has a way of formalizing the intuitive, which is helpful amidst the rigid terrain of computer logic.”

Mostly Adequate Guide to Functional Programming on Wadler’s free theorems