anders murphy
Clojure: SQLite C API with project Panama and Coffi
Why you should consider using brotli compression with SSE
Clojure: Realtime collaborative web apps without ClojureScript
Clojure: Synchronous server sent events with virtual threads and channels
How to max throughput when pulling data from a third party service
Clojure: virtual thread and dynamic var performance
Clojure: structured concurrency and scoped values
Clojure: managing throughput with virtual threads
Clojure: CI with Github Actions and Postgres
Clojure: pruning HTML with clojure.walk
Emacs: streaming radio with emms
Clojure: the REPL makes contributing to open source easy
Clojure: clj-kondo datalog linting
Clojure: virtual threads with ring and jetty
Clojure: virtual threads with ring and http-kit
Fennel: making PICO-8 games
Clojure: SQLite application defined SQL functions with JDBC
SQLite: building from source on macOS
Clojure: sending emails with postal and Gmail SMTP
Clojure: pretty print strings
Clojure: extend honeysql to support postgres 'alter column' and 'add constraint'
Clojure: removing namespace from keywords in response middleware
Clojure: making missing environment variables fail at compile time
Heroku: buildpack for Clojure tools
Clojure: compiling java source with tools.build
Clojure: check if instant happened today at timezone
Emacs: the joy of reducing workflow friction with elisp
Emacs: building from source on macOS
Clojure: code highlights for this website
Clojure: website link checker
Clojure: map-occurrence
Clojure: ensuring multimethods are required
Clojure: destructive macros
Clojure: crawling Hacker News with re-seq
Clojure: cond-merge revisited
Clojure: adding dissoc-in to our cond-merge macro
Clojure: cond->, deep-merge, remove-nils and the shape of data
Clojure: string similarity
Clojure: adding compile time errors with macros
Clojure: previous, current and next
Clojure: jdbc using any and all as alternatives to in
Emacs: setting up Apheleia to use Prettier and Zprint
Homebrew: write your own brew formula
Clojure: code formatting pre-commit hook with zprint
Clojure: java interop with bean
Clojure: code as data
Clojure: persistent rate limiting
Clojure: permutations
Ruby: functional programming
Clojure: flattening key paths
Clojure: manipulating HTML and XML with zippers
Clojure: sorting tuples
Clojure: generating HTML and XML
Clojure: using java.time with clojure.java.jdbc
Clojure: connection pooling with hikari-cp
Clojure: emoji in strings
Clojure: a debug macro for threading macros using tap>
Clojure: intro to tap> and accessing private vars
Clojure: sorting a sequence based on another sequence
Clojure: personalising text
Clojure: case conversion and boundaries
Clojure: contains? and some
Clojure: sorting
Lisp-1 vs Lisp-2
Clojure: merging maps by key (join)
Clojure: string interpolation
Clojure: sending emails with SendGrid
Clojure: validating phone numbers
Clojure: juxt and separate
Clojure: map-values and map-keys
Desert island code: compose and pipe
Desert island code: curry
Desert island code: reduce map and filter
Managing obfuscation with annotations
Using Proguard instead of multidex
Signing your app
Introduction to Kotlin on Android
Setting up Retrolambda
Enabling multidex on Android
Binding Android views with Butter Knife
Advantages of an Android free zone