Before tmux, I spent most of my time working in graphical editors and interfaces, and found working in the terminal difficult to do.
After moving to tmux and learning how to configure it to suit my needs, I now spend nearly all my time whilst writing code in tmux.
In this video, I share the configuration that I’ve developed over the years to improve my own productivity, and why you may want to consider using tmux yourself.
edn is an extensible data notation. A superset of edn is used by Clojure to represent programs, and it is used by Datomic and other applications as a data transfer format. This spec describes edn in isolation from those and other specific use cases, to help facilitate implementation of readers and writers in other languages, and for other uses.
Welcome reader! This is a book about scripting with Clojure and babashka. Clojure is a functional, dynamic programming language from the Lisp family which runs on the JVM. Babashka is a scripting environment made with Clojure, compiled to native with GraalVM. The primary benefits of using babashka for scripting compared to the JVM are fast startup time and low memory consumption. Babashka comes with batteries included and packs libraries like clojure.tools.cli for parsing command line arguments and cheshire for working with JSON. Moreover, it can be installed just by downloading a self-contained binary.
Sometimes, in a vast and healthy developer ecosystem of a language like Clojure, it can be difficult to know where to get started when you want to build an application. The target audience of this series is developers who have some Clojure syntax in their hands and want to start building applications.
Conjure is an interactive environment for evaluating code within your running program.
The core features of Conjure are language agnostic (although it’s targeted at Lisps for now), with each language client providing their own extra tools. Here’s the currently supported languages, contributions and 3rd party plugins that add clients are highly encouraged! You can find a comparison table for all clients and supported features in the wiki.
Rich Hickey, the author of Clojure and designer of Datomic, is a software developer with over 30 years of experience in various domains. Rich has worked on scheduling systems, broadcast automation, audio analysis and fingerprinting, database design, yield management, exit poll systems, and machine listening, in a variety of languages.
This keynote was given at Strange Loop 2011, and is perhaps the best known and most highly regarded of Rich's many excellent talks, ushering in a new way to think about the problems of software design and the constant fight against complexity.
The video was recorded at Strange Loop in partnership with InfoQ, who have hosted it on their site since 2011. This version (released 10 years later) is a new edit made from the original HD video and slides, restoring the slide transitions and animations as it was given in 2011.
In this presentation, we explore the concept of knowledge databases, which represent entities and their relationships in a structured and semantic way. By combining this model with immutability—where data is never overwritten, only accumulated—it becomes possible to build systems with a complete, auditable history and native versioning. This approach is particularly powerful in complex ecosystems like Nubank’s, where thousands of microservices interact. We’ll show how modeling these interactions as a knowledge database allows us to uncover patterns, dependencies, and insights that are otherwise hidden, ultimately helping teams understand and evolve the system more safely and intelligently.
Biography
Darlei Soares and João Nascimento are software engineers and data enthusiasts with deep experience in building systems around immutable knowledge databases. Currently part of the engineering team at Nubank, Darlei and João both work on designing and maintaining highly distributed services that leverage Datomic at scale, powering financial operations for millions of customers.
Recorded Nov 13, 2025 at Clojure/Conj 2025 in Charlotte, NC.
This section lists the values and functions built into the Nix language evaluator. All built-ins are available through the global builtins constant.
Some built-ins are also exposed directly in the global scope:
- derivation
- import
- abort
- throw
Lemurs is a Terminal User Interface (TUI) Display/Login Managers written in Rust that works on most GNU/Linux and BSD distributions. It can work both with or without SystemD.
Colmena is a simple, stateless NixOS deployment tool modeled after NixOps and morph, written in Rust. It's a thin wrapper over Nix commands like nix-instantiate and nix-copy-closure, and supports parallel deployment.
Mein Arbeitsalltag dreht sich unter anderem um Informations- und Wissensmanagement (PIM, PKM), digitales Notieren und wissenschaftliches Arbeiten. Seit einiger Zeit setze ich mich im NoteLab für digitale Souveränität ein: offene Formate wie Markdown, dezentrale Plattformen wie Mastodon und PeerTube (Lohner & Siegel, 2026) und Tools wie Obsidian, das meine Notizen lokal auf der Festplatte speichert – statt in proprietären Lösungen von Quasi-Monopolisten.
Doch zwischen Ideal und Praxis klaffte eine Lücke: Mein Laptop lief mit Windows und Microsoft 365, mein Smartphone war ein iPhone 13 mit iOS. Beide Systeme sind Closed-Source, sammeln Daten und binden Nutzer:innen in Ökosysteme ein, die Konto-Zwänge, Tracking und Abhängigkeiten schaffen. Das widersprach zunehmend meinen Werten – und meinen Anforderungen an sicheres, fokussiertes Wissensmanagement.
Also habe ich auf den 4. Digital Independence Days den Schritt gewagt:
- Ubuntu und LibreOffice (alternative OnlyOffice) ersetzen Windows und Microsoft Office auf meinem Laptop.
- GrapheneOS auf einem Google Pixel 9 löst mein iPhone ab.
Du wolltest schon immer mal deinen eigenen Podcatcher bauen?
Nicht abhängig sein von Spotify, Apple Podcasts oder sonstigen Plattformen, sondern deinen Podcatcher selbst hosten und verwalten?
Genau das hab ich jetzt mal ausprobiert – und zwar mit Audiobookshelf.
Spoiler: Funktioniert richtig gut.
Data-driven Schemas for Clojure/Script and babashka.
Metosin Open Source Status: Active. Stability: well matured alpha.
- Schema definitions as data
- Vector, Map and Lite syntaxes
- Validation and Value Transformation
- First class Error Messages with Spell Checking
- Generating values from Schemas
- Inferring Schemas from sample values and Destructuring.
- Tools for Programming with Schemas
- Parsing and Unparsing values
- Enumeration, Sequence, Vector, and Set Schemas
- Persisting schemas, even function schemas
- Immutable, Mutable, Dynamic, Lazy and Local Schema Registries
- Schema Transformations to JSON Schema, Swagger2, and descriptions in english
- Multi-schemas, Recursive Schemas and Default values
- Function Schemas with dynamic and static schema checking
- Integrates with both clj-kondo and Typed Clojure
- Visualizing Schemas with DOT and PlantUML
- Pretty development time errors
- Fast
A fast data-driven router for Clojure(Script).
- Simple data-driven route syntax
- Route conflict resolution
- First-class route data
- Bi-directional routing
- Pluggable coercion (malli, schema & clojure.spec)
- Helpers for ring, http, pedestal & frontend
- Friendly Error Messages
- Extendable
- Modular
- Fast
Why I replaced my clickable hypervisor with declarative text files
I have officially decommissioned my Proxmox cluster. After years of running my homelab on Proxmox, starting with a single NUC and expanding to a multi-node cluster, I have migrated everything to NixOS running Incus.
The deps.edn file is a data file specifying all information needed to form a project classpath, including deps, paths, and external dependency repository information. The deps.edn file format is used by the tools.deps library and the Clojure CLI.
If you are building a tool that would like to leverage deps.edn, create well-known namespaced :aliases as a means to convey tool configuration, rather than adding new arbitrary tags elsewhere in the deps.edn data - these may not be preserved or conveyed during processing. Tools can access alias data via the basis at runtime, or programatically via tools.deps.