Category Archives: Computer Science

SQL Database Design with Yesod and Persistent

If you’ve ever designed a database from scratch, or worked with a database migrations, then you know how important it is to get the data schema right the first time. If you get them wrong, then when you (inevitably) have to fix it, you must do a major overhaul of your code just to fit the updated schema. In Rails, this means re-implementing potentially dozens of objects. In Haskell, it’s not as bad because the compiler handles most error checking (with Persistent, anyhow), but it’s still not a trivial exercise.

So how do you design a database with Persistent? You begin with database normalization (DN) in mind.

Continue reading


The Merge by Sam Altman

The incorrect assumption here is that humans and technology were ever separate to begin with. Tech is an extension of human cognition and intelligence, not some external reality that is independent of humans. The only thing changing is the mode in which we interface with the tech.

Ship it

The best software developers I know are the least sure of the code they have touched. The worst judge others for not having their arrogance.


Still others know that shipping working code on time is better than an intellectual exercise in moral judgement.

Machine learning theory is lagging behind

We’re in a very empirical era in machine learning…but theory is lagging behind. – Michael Jordan


Because computer scientists don’t study psychoanalysis or philosophy. A good place to start is Hubert Dreyfus. Next try Spinoza, Lacan, Foucault, Deleuze and Berkeley. What you’ll learn is that the intelligent world is explainable by interpretation, in the psychoanalytic sense. Then you realize that Turing’s imitation game is a mathematical description of this same concept of interpretation. This changes the way to look at computers, and the way to look at your own ability to think.

To regain your sanity, read Levinas.