Making a Datomic system GDPR-compliant

So yeah, about Clojure's syntax...
For many experienced programmers, the first encounter with Clojure's syntax ranges from slightly disturbing to downright shocking.
Continue reading →Why on Earth would you put the function inside the parens? That's just weird!
Using PostgreSQL temporary views for expressing business logic
I recently worked on a project which consisted of merging related data exports from a variety of sources and extracting accounting information from them. Because the problem was inherently very relational, I was naturally led to use an SQL database in the project (in this case PostgreSQL).
I ended up expressing much more of the business logic than I thought using pure SQL - more precisely, temporary SQL Views - so I thought I'd share my findings here.
Continue reading →What makes a good REPL?
Dear Reader: although this post mentions Clojure as an example, it is not specifically about Clojure; please do not make it part of a language war. If you know other configurations which allow for a productive REPL experience, please describe them in the comments!
Datomic: this is not the history you're looking for
In this post, I'll describe some common pitfalls regarding the use of the 'time-travel' features of Datomic (db.asOf()
, db.history()
, :db/txInstant
).
We'll see that, unlike what many people think when they start using Datomic, these historical features of Datomic are not so useful for implementing custom time-travel features in the business logic of applications - rather for generic database-related tasks.
Continue reading →