RSS.Social

quanttype

follow: @[email protected]

Posts

Compressing floating point data with Gorilla

FP compression family tree

Storing timeseries data

Leader election with S3 and If-Match

New winds

Yearnote 2024

Weeknote 19: ADRs record decisions

Weeknote 18: Code comments

Weeknote 17: Caching Docker builds on GitHub Actions

Weeknote 16: Late code review

Weeknote 15: Technology radar

Weeknote 14: Throwing it away

Weeknote 13: Deterministic Simulation Testing

Weeknote 12: In the weeds

Weeknote 11: Weeknotes

Weeknote 10: Prototyping

Weeknote 9: EuroRust 2024

Weeknote 8: Feedback

Weeknote 7: Memray + k8s

Weeknote 6: Heart of Clojure

Weeknote 5: Broken Input

Weeknote 4: Debugging Tools

Weeknote 3: Object Storage

Weeknote 2: Developer Experience

Weeknote 1: Schema Evolution

paketoi 0.1

A toolbox of methods

GitHub's PRs could be better

Creating AWS Lambda zip files with Pex

Yearnote 2023

Do not use requirements.txt

Recipes for updating poetry.lock

Branchless git workflows

Yearnote 2022

SQL, Clojure, and editor support

What does `identical?` do?

Tasks of a schema migration tool

Schema migrations and avoiding downtime

Clojure and what could've been

Yearnote 2021

Split tokens in Clojure

Enjoying the silence

clojure.xml and untrusted input

clojure.spec and untrusted input

Why take notes, anyway?

The goal is to deliver working software

Winter-posting

When to not use code review

Writing is a core skill for developers

Clojure project automation tool of my dreams

Yearnote 2020

NixOS impressions

Code review in context

New shell prompt with Starship

Early impressions on morning pages

Code review is for collaboration

Why bother with Integrant?

Two albums of sad music

What are DIDs?

Caching HTTP requests in Clojure

Generating random tokens in Clojure

clj-branca: lessons learned

Branca and yak shaving

Solving the diamond problem with shading

Local memoized recursive functions

No blog this week

Is this art?

JWT and its alternatives

Looking good in a suit

The minimalist program

Two things that make logging out hard

Summer reading

Signing .jars is worthless

On paddling

Summer vacation

Building software without hiring anyone

Who is going to use the programming language?

Automating spec-tools releases

Have you seen the swan?

Essential features of data specification libraries

Schema, Spec, and Malli

Elegant knowledge transfer

Ricoh GR III, a year later

Put files where they are expected

Video calls are cool but have you tried writing

Freezing deployments is risky

Working from home: initial impressions

Programming is writing

Making decisions without asking your boss

No need for something to say

Logging request IDs in Tornado

Hello again, Python

Joys of a heavy camera

Yearnote 2019

Standard problems, standard solutions

Just automate syntax formatting

Keeping code review fast

The power of code review

Coercing JSON with malli

Karhunkierros IV

Karhunkierros III

Karhunkierros II

Karhunkierros I

The joys of coverage

The hallway track conference

Interpreting Moriyama

Ricoh GR III - initial impressions

Handbrewing coffee

Revisiting Clojure testing

Yearnote 2018

How I use tap>

Clojure libraries I recommend

Why interceptors?

I made a backpack

Fully automated releases

Migrated to Hugo

Lead Developer London 2018

A night in Nuuksio

Edit clipboard contents in Vim

How to write a talk proposal

Name this conversation pattern

Yearnote 2017

Secure Scuttlebutt: some technical details

A new JSON library appears

Break from blogging

What is first-order logic?

Please publish changelogs

Write more macros

Hiking from Pyhä to Luosto

Summer vacation

Focus on understandble code

What is pair programming like?

Using Beeminder to keep blogging

What are hybrid maps?

ZuriHac 2017

Commit messages are worthless

On sailing

On JSONfeed

clojure.spec for configuration validation

What is functional analysis?

JUnit output for Clojure tests

prog1 in Clojure

Darkroom update

Keskustalaisuus vaalikoneessa

How I use Anki

Configuring Clojure apps

Thinking about gear (acquisition syndrome)

Ice in black and white

The surprises of photography

Reading highlights from 2016

Technical tooling for making better software

Running ClojureScript tests with Karma

Clojure test runner of my dreams

Curry On and ZuriHac

Some questions (June 2016)

On feeling guilty about not being good enough

You'll want locally scoped CSS

Why look beyond JavaScript?

What is descriptive set theory?

How I solved the Orbital Challenge

Mamiya RB67 Pro-S

What's the point of dependent types?

We're in early days of software engineering

Finding that lemma: Coq search commands

How to divide by zero?

Take better photos by looking carefully

defaultdicts all the way down

Runtime exceptions in Elm

Multitenant Flask-SQLAlchemy

What is forcing, anyway?

Elementary algebra in Coq: Trivial group

Please give demanding tech talks

Elementary algebra in Coq: Defining a group

What's in a proof?

Getting started with Coq

Helsinki Haskell User Group

On Infinite Jest

The bare minimum to know about RELAX NG

Yearnote 2015

Math is hard, let's go blogging

Code review requires trust

Color film update

Python is not good enough

Printers now work

Spinning while sleeping

Joylent mini-review

Dabbling in film photography

Webpacking a project

Exercising is like eating

Moral obligations of ad blocking

Commandments for code review

Some questions I can't answer

Everyday carry (August 2015)

Copenhagen highlights

Shell pro-tip: create weekly working directories

Wash your smelly travel towel with vinegar

FRP and self-adjusting computation

Running is great for lazy people

The Moat of Scrumbut

Speech as art

A Mind for Numbers

Spend some time away from computers

ROS: Good, bad and ugly

The Law of Partial Test Coverage

Good math exercises build trust

Quickly jumping between git branches

Emacs: Get the path for current buffer from command-line

Birds and context-free grammars

You should take lecture notes with pen and paper

Tornien taisto is coming soon

New theorem prover: Lean

The value of MOOCs is not in the videos

Are quantum computers faster than classical computers?

This Week in Finnish Politics

Types of JavaScript

Setting up Coq, Ssreflect and Proof General on OS X

Yearnote 2014

Ambronite mini-review

Going to write a bachelor's thesis

Guts of the Golden Pig

Event notes: ClojuTRE 2014

A photo essay: Haronmäki

Customizing Nix packages

Did taking photos teach me anything?

Four scientific ways to hack your learning

NP and non-deterministic Turing machines

Why does everything fall apart so quickly?

Practicing photography

Houkutteleva tutkijanura

In praise of Hiccup

Is being normal anti-establishment?

Electromagnetic Field 2014

Math is programming

When is static typing worthwhile?

Hard things in software engineering

Linux problems, April 2014

Baudrillard on Jogging

Renaming files with zmv

Weak views, strongly held

Flappy Sine

nix-docker and docker volumes

Baana, Helsinki

Compiling assembler files with avr-gcc without C runtime

People Never Change

Peruna, a horse and a medicine

Mental Attitude of the Grid

Silver Streetcar for the Orchestra

ferret.gif

Why do you write commit messages?

Setting up nginx for static content with Pallet

Tomaatti-Sota