The Curious Engineer

All blogs / Lisp / Clojure / Scheme

anders murphy

andersmurphy.com

A blog mostly about Clojure programming

Lisp / Clojure / SchemeDatabasesPerformance / optimizationConcurrency

Posts
87 from 27 Aug 2015 to 12 Oct 2026
Posting
monthly (6 in the last year)
Kind
personal blog
Feed
https://andersmurphy.com/feed.xml

2026 5

  1. Lockstep to pipeline in almost one line
  2. Discrete time based systems are simple to benchmark
  3. Faster streaming HTML with batches and aggregates
  4. SQLite improving performance with pre-sort
  5. The perils of UUID primary keys in SQLite

2025 4

  1. 100000 TPS over a billion rows: the unreasonable effectiveness of SQLite
  2. Clojure: SQLite C API with project Panama and Coffi
  3. Why you should consider using brotli compression with SSE
  4. Clojure: Realtime collaborative web apps without ClojureScript

2024 10

  1. Clojure: Synchronous server sent events with virtual threads and channels
  2. How to max throughput when pulling data from a third party service
  3. Clojure: virtual thread and dynamic var performance
  4. Clojure: structured concurrency and scoped values
  5. Clojure: managing throughput with virtual threads
  6. Clojure: CI with Github Actions and Postgres
  7. Clojure: pruning HTML with clojure.walk
  8. Emacs: streaming radio with emms
  9. Clojure: the REPL makes contributing to open source easy
  10. Clojure: clj-kondo datalog linting

2023 5

  1. Clojure: virtual threads with ring and jetty
  2. Clojure: virtual threads with ring and http-kit
  3. Fennel: making PICO-8 games
  4. Clojure: SQLite application defined SQL functions with JDBC
  5. SQLite: building from source on macOS

2022 6

  1. Clojure: sending emails with postal and Gmail SMTP
  2. Clojure: pretty print strings
  3. Clojure: extend honeysql to support postgres 'alter column' and 'add constraint'
  4. Clojure: removing namespace from keywords in response middleware
  5. Clojure: making missing environment variables fail at compile time
  6. Heroku: buildpack for Clojure tools

2021 10

  1. Clojure: compiling java source with tools.build
  2. Clojure: check if instant happened today at timezone
  3. Emacs: the joy of reducing workflow friction with elisp
  4. Emacs: building from source on macOS
  5. Clojure: code highlights for this website
  6. Clojure: website link checker
  7. Clojure: map-occurrence
  8. Clojure: ensuring multimethods are required
  9. Clojure: destructive macros
  10. Clojure: crawling Hacker News with re-seq

2020 13

  1. Clojure: cond-merge revisited
  2. Clojure: adding dissoc-in to our cond-merge macro
  3. Clojure: cond->, deep-merge, remove-nils and the shape of data
  4. Clojure: string similarity
  5. Clojure: adding compile time errors with macros
  6. Clojure: previous, current and next
  7. Clojure: jdbc using any and all as alternatives to in
  8. Emacs: setting up Apheleia to use Prettier and Zprint
  9. Homebrew: write your own brew formula
  10. Clojure: code formatting pre-commit hook with zprint
  11. Clojure: java interop with bean
  12. Clojure: code as data
  13. Clojure: persistent rate limiting

2019 20

  1. Clojure: permutations
  2. Ruby: functional programming
  3. Clojure: flattening key paths
  4. Clojure: manipulating HTML and XML with zippers
  5. Clojure: sorting tuples
  6. Clojure: generating HTML and XML
  7. Clojure: using java.time with clojure.java.jdbc
  8. Clojure: connection pooling with hikari-cp
  9. Clojure: emoji in strings
  10. Clojure: a debug macro for threading macros using tap>
  11. Clojure: intro to tap> and accessing private vars
  12. Clojure: sorting a sequence based on another sequence
  13. Clojure: personalising text
  14. Clojure: case conversion and boundaries
  15. Clojure: contains? and some
  16. Clojure: sorting
  17. Lisp-1 vs Lisp-2
  18. Clojure: merging maps by key (join)
  19. Clojure: string interpolation
  20. Clojure: sending emails with SendGrid

2018 5

  1. Clojure: validating phone numbers
  2. Clojure: juxt and separate
  3. Clojure: map-values and map-keys
  4. Desert island code: compose and pipe
  5. Desert island code: curry

2017 1

  1. Desert island code: reduce map and filter

2016 3

  1. Managing obfuscation with annotations
  2. Using Proguard instead of multidex
  3. Signing your app

2015 5

  1. Introduction to Kotlin on Android
  2. Setting up Retrolambda
  3. Enabling multidex on Android
  4. Binding Android views with Butter Knife
  5. Advantages of an Android free zone