What every software developer must know about Unicode in 2023
Modern extension to classic 2003 article by Joel Spolsky
I consult on all things Clojure: web, backend, Datomic, DataScript, performance, etc. Check out my Github and get in touch niki@tonsky.me
Visit tonsky.me → RSS feedOn Hacker News Jul 2015 – Jun 2026
Software Engineering 23Web & Frontend 16Programming Languages 8Design & UX 6Tools & Productivity 4Society, Policy & Culture 4
Modern extension to classic 2003 article by Joel Spolsky
Everything is going to hell and nobody seems to care
How imprecise UI animations erode trust in product
We explore how to build local-first sync on top of simple file storage
Introducing Skija, Java bindings for Google graphics library, Skia
Detailed look into all the machinery involved in rendering Emoji
What is the average size of JavaScript code downloaded per website? Fuck around and find out!
Ideas and inspirations for new Clojure framework for desktop apps
4-day coding marathon
Some advices to writing Clojure code
Applying human ergonomics and design principles to syntax highlighting
Fast programs are always fast, slow programs are slow even on a most powerful computers. Knowing that fast solution exists makes slow one plain wrong.
An experiment of using incremental computations for managing state in Humble UI
Article argues that Claude is not an Electron app not because LLMs can’t do it, but because there are no advantages left for native
A few notes on SwiftUI and why UI frameworks should not try to be “smart”
Lockfiles are an absolutely unnecessary concept that complicates things without a good reason. Dependency managers can and are working without it just the same.
This post is a compilation of publicly available information, Datomic docs and google group answers about Datomic internals. Intention is to help others understand implementation model and use Datomic more efficiently.
How I build a website for choosing movies
We used to use software; now software started to use us
Computers are starting to have opinions on how our APIs should look like
Clojure macros have two modes: avoid them at all costs/do very basic stuff, or go absolutely crazy.
A look at common mistakes in DSL designs and how to fix them
A story of writing Clojure’s println alternative that works inside threading-first/last macros