posts
Human vs JSON output formatting: avoid mixing concerns
Why I use Debian
riki page names and internal links
Implementing an ikiwiki subset in Rust
radiclw
Using Radicle CI for Development
Command line interfaces in Rust
Framework 13 inch AMD and HP Thunderbolt4 Dock G4
Why does Debian change software?
Interviewed on the Open Source Security podcast
Obnam, again
I don't like Docker or Podman
Backup software implementation, part 7
A QEMU question regarding user mode networking
Backup software implementation, part 6
Backup software implementation, part 5
Error messages when running programs in Rust
Backup software implementation, part 4
Backup software implementation, part 3
Ambient, a CI engine
Backup software implementation, part 2
Backup software implementation
Framework 13 AMD, first impressions
Software supply roles
Checklist for primary laptop
Debian Git monorepo
vmdb2 version 0.40 released
40 years as a programmer
Billion file filesystem
The XY solution
De-duplicating $PATH
New PGP key, and practice around it
Updated my GTD introduction guide
Why is Debian the way it is?
Tickets, issues, tasks
New job: Radicle
vmdb2 and v-i releases
Using clap to build nice command line interfaces
CI annoyances
'The early days of Linux' on LWN
Tricking your brain to get things done
Rant: year of Linux on the desktop
Can you run your test suite successfully 1000 times in a row?
Keyboardio Model100 keyboard: review at one month
Rust training for FOSS devs: November 20
Rust training for FOSS devs: how did it go?
Rust training for FOSS programmers
Not breaking things is hard
v-i version 0.2: non-interactive Debian installer for bare metal machines
On home Internet routers
Obnam 0.8.0 - encrypting backup program
Rust training
Unix command line conventions over time
Release notes: why and how?
On Linus's Law
obnam
A year of README reviews
v-i 0.1, a Debian installer using vmdb2
Insert a million rows into Sqlite, from Rust
sq stakeholder interviews: summary
Subplot talk at FOSDEM
Security ratchet
My split external brain
We're breaking Subplot for a while
A custom Debian installer: v-i
Obnam 0.6.0 released: encrypting backup program
Obnam 0.5.0 released: encrypting backup program
User guide for Sequoia sq: feedback please
Essay on re-thinking email
I work on Sequoia-PGP now
Tilde expansion in Rust
SSH host identity certification
Subplot 0.2.2 released—acceptance testing tool
I installed Debian on a Thinkpad X220
Please try Subplot, for acceptance criteria
Obnam version 0.4.0: encrypting backup program
Sponsored-by proposal
Vulnerability testing of patch review processes in FOSS
Book club: Program Comprehension and Code Complexity Metrics: An fMRI Study
Debian disappointment
Obnam iteration planning: April 18—April 25
I'd like to review your README
The leadership problem for free software
Book club: Hillel Wayne's What we know we don't know
Obnam version 0.3.0: backup program
obnam version 0 3 0 backup program
vmadm: helping me manage my local libvirt VMs
vmadm helping me manage my local libvirt vms
The XDG base directory specification and Rust
On planning and estimating software development work
Asymptotic awesomeness
Obnam2 version 0.2.2, backup program: an alpha version
obnam2 version 0 2 backup program an alpha version
Backup interchange format
Why write Obnam?
Counting Obnam users
My test setup for my Ansible roles
Obnam2 - a new backup system
On Digital Ocean's Hacktoberfest
A billion files
Book club: Testing Firefox more efficiently with machine learning by Mozilla
Transfer speeds
Book club: The communicative value of using Git well
I miss inboxes
Rethinking email: the spam problem
Book club: Latacora -- Stop using encrypted email
Contractor: build software more securely
Godwin on empowering people
What people like or hate about email
Demo site for how I journal
Alternative Debian installer based on vmdb2: v-i
Security isolation in CI engines
Subplot volunteers? (Acceptance testing tool)
Why Debian isn't fun for me
Date formats in international contexts
Free software development doesn't have to be awful
Code coverage is almost pointless for tests
Review: Keyboardio Model 01 keyboard
The reMarkable tablet: a review
Subplot - new name for acceptance testing tool
Fable for acceptance testing
Debian and the SKS signature flooding attack
Dijkstra was only partially correct about testing
Two guys walk into a bar... to talk about debugging
On learning Rust and Go: migrating away from Python
On deep, constructive online discussions about technical topics
Starting new project: Yuck (an identity provider)
Unit test coverage and confidence
Thanking authors of the free software you use
Roadmap visualisation
Retiring from Debian
Idea for a Debian QA service: monitoring install size with dependencies
Rewrote summain from Python to Rust
On flatpak, snap, distros, and software distribution
New job: WMF release engineering
GITR: Parsing Text with Nom; Pain points
GITR: Object-Orientation in Rust
GITR: Threads, Networking and Sharing
GITR: Error Handling
GITR: Standard Library Containers
vmdb2 roadmap
GITR: Modules and Cargo
A filesystem walker as an iterator
GITR: Filesystem and Processes
New website for vmdb2
GITR: Structs, enums, and matching
GITR: Introduction, Basics
A plan to learn Rust
Learning Rust
Short-term contracting work?
Federated CI
Software freedom for the modern era
On requiring English in a free software project
Building Debian packages in CI (ick)
Ick version 0.53 released: CI engine
Ick ALPHA-6 released: CI/CD engine
Hacker Noir developments
Architecture aromas
Storing passwords in cleartext: don't ever
New chapter of Hacker Noir on Patreon
dpkg maintainer script containerisation
What is Debian all about, really? Or: friction, packaging complex applications
Qvisqve - an authorisation server, first alpha release
Ick: a continuous integration system
On using Github and a PR based workflow
The proof is in the pudding
Unit and integration testing: an analogy with cars
Debian and the GDPR
Attracting contributors to a new project
Retiring Obnam
Enabling TRIM/DISCARD on Debian, ext4, luks, and lvm
Dropping Yakking from Planet Debian
Adding Yakking to Planet Debian
Obnam 1.22 released (backup application)
Vmdb2 first alpha release: Debian disk image creation tool
Using a Yubikey 4 for ensafening one's encryption
Distix movement
Ick2 design discussion
Hacker Noir, chapter 2: Development setup phase
Improving debugging via email, followup
Hacker Noir, chapter 1: Negotiation
hacker noire chapter 1 negotiation
Debian miniconf in Cambridge
Obnam 1.20 released
A tiny PC as a router
Thinking about CI, maybe writing ick2
Linux 25 jubilee symposium
20 years ago I became a Debian developer
Debugging over email
Two-factor auth for local logins in Debian using U2F keys
New APT signing key for code.liw.fi/debian
Qvarn Platform announcement
New job: QvarnLabs
Obnam user survey, 2016
survey-2016
Not-platform for Debian project leader elections 2016
Update on 'Backups as a service in Debian': no news is bad news
Obnam 1.19.1 released (backup software)
Obnam survey (January 2016)
Obnam 1.19 released (backup software)
Coming back to Finland after five years
Software Freedom Conservancy donation
FUUG grant for Obnam development: what happened then
Obnam 1.18 released (backup software)
On Norbert Preining, Sage Sharp, and Debian
FUUG grant for Obnam development
Obnam 1.17 released (backup software)
On the cost analysis of dependencies
Obnam 1.14 released (backup software)
Obnam 1.13 released (backup software)
/u/liw no more
Obnam 1.12 released (backup software)
Obnam 1.10 released (backup software)
Software development estimation
Jessie release part in Helsinki
DPL elections for 2015 are going on
Obnam 4.1 released
Obnam 1.9 released (backup software)
The shape of a solution
'It Will Never Work in Theory' and software engineering research
networkintheory
A vision of backups in Debian
Matthew Garret and Intel and the so-called gamergate
45
On ticketing systems
Bald again
Obnam 1.8 (backup program)
Programming performance art
Applying the Doctorow method to coding
Obnam 1.7.4 release (backup software)
Obnam 1.7.1 and 1.7.2 releases (backup software)
Obnam 1.7 (backup software)
Thoughtful, inspiring words from Russ
Obnam 1.6.1 (backup software) and larch 1.20131130 (B-tree) releases: serious bug fixes
Debian: developing it wrong
Configuring gitano
Moving repositories to git.liw.fi
My GTD booklet no longer on Amazon
Ending squeeze support in my software
Yakking: a new group blog targeting new free software hackers
fling.yarn
recompress.yarn
Yarn, a scenario testing tool
Obnam 1.5 (backup software) release
Married
Consistency in backups
Oops: Making sure your backups work
Obnam bug list length
Who knows what evil lurks in the data of men? Security aspects of backups
How long is a string: how many backups are enough?
If it quacks like a duck: what is a backup?
"Um, I know I should": talking about backups
On the usefulness of wishlist bugs
Machine-parseable embedded license summary information
Two new t-shirt designs
Obnam 1.4 (backup software) release
cliapp 1.20130313 released (Python command line utility framework)
ttystatus 0.22 (terminal status and progress reporting for Python)
Daniel and the shaved yak
Thinkpad X200s scroll wheel emulation
Makefiletab plugin for Gedit 3
Can the world be saved by coding?
Kickstarter: Maria Eveliina
Public libraries bad for authors and publishers?
Baserock talk at FOSDEM
trunktees-2013-01
Obnam 1.3 (backup software) and other releases
Made some t-shirt designs
Tools I use
Intervewed on FLOSS Weekly about Baserock
Obnam 1.2 (backup software)
New format to replace tar: some notes
Debian discussion culture: what doesn't work
decorum-works-does-not-work
Dabbling in diplomacy
Baserock, or what I've been doing at work last year
Bald
Obnam 1.1 (backup software)
Helsingin kaupungilla liikaa rahaa
In Kindle store: Getting Things Done for Hackers booklet
GTD for hackers talk
errno lookups on the command line
Obnam 1.0 (backup software); a story in many words
Obnam 0.29 (backup software)
Larch 1.20120527 (Python B-tree library)
Summain 0.13 (file manifest/metadata/checksum tool)
Obnam 0.28 (backup program)
Quality of discussion in free software development
Obnam 0.27 released (backup software)
Obnam 1.0 planning
Earth 2.0 by Soile Mottisenkangas
What is a Linux distribution?
Getting Things Done for Hackers
World Backup Day
Obnam 0.26 released (backup software)
branchable-noncorporate
New Obnam mailing list
Soile's Kickstarter campaign a succes
Copyright as theft
Obnam 0.25 released (backup software)
FOSDEM 2012
MIX 1/2 Albanian Kickstater
Cafe coding and other productivity hacks
Like/dislike buttons in free software
Obnam 0.24 released (backup software)
Effin lakanakampanja
#backuphackers and plea for help
Obnam backup speed to local disk
Moving from SD to Ikiwiki for bug tracking
On the future of Linux distributions
Luxury
In search of boredom
Obnam 0.23 released (backup software)
Entropy key: a review
File copying and removal benchmarking
Obnam version 0.22 (backup application)
Obnam 0.21 released (backup software)
test
Linux at 20
Oh Amazon...
Linux 20 years: anecdotes from 1998
Obnam version 0.20 (backup software)
Missing roles in software: build engineers
Using OpenPGP subkeys in Debian development
Obnam 0.19 (backup software)
Obnam Ubuntu PPA
Obnam version 0.18
rm is too slow
Instapaper versus MAFF
My first t-shirt design
strncpy? just say no
A tiny step towards TDDD and FreedomBox-NAS
Chunkwise Debian package downloads
Train coding: summain speed
Living off freedom
TDDD systest tool proof of concept
Obnam 0.17: second BETA release
TDDD, more thoughts
vmdebootstrap and FreedomBoxLite
I'm in the movie business now
vmdebootstrap, for real
Beep be gone
Test driven distribution development
I'm a digital luddite, me
python-tracing 0.3
Obnam 0.16: no longer alpha
Project Harmony
cliapp, a Python command line app framework
Blackmail as an argumentation technique
World Backup Day
Obnam version 0.15 and 0.15.1, and btree/larch 0.19
QR codes for backup?
DPL elections: candidate counts
Truth in advertising
Keep companies honest
Kaka
DPL nomination period for 2011
What's a good name for a Python B-tree library?
Experiences with SD
Nokia ja rakennemuutos
Growing the Debian development community
Idea: addsysuser
Edinburgh squeeze release party
Python B-tree library, 0.16.2
Egypt blocks all communication: thoughts
Obnam and btree journal dump
New job, at Collabora
DEP5 is CANDIATE
Micro-optimizing btree
Obnam 0.14 and btree 0.14
On PDF restrictions and software freedom
Shadow of a bug
On showing respect
Welcome to my newest blog
Write intent bitmaps with Linux software RAID
Debian VM image creation tool?
Geographical uncertainty
first post
Distributed bug tracking
Packaging tutorial for Debian-Women
Manpage tutorial
E-kirjoja, kiitos
In defense of Nicole
100 things?
Monopoly variants
No orange dents
My Plans for Debian
Oops, I did it again
Undo for mail sending in Evolution
Debian CUT
Debconf10
Should I re-join Debian?
Branchable
Keyboard for hire
Obnam version 0.13
Obnam and btree versions 0.12
KD:n Maanselkä: pienpuolueiden toiminta lopetettava
Obnam version 0.11, btree version 0.11
Obnam 0.10 (ALPHA)
btree 0.10
Python profile inspector
Python library for terminal status updates
Soile source
LRU cache for Python
btree 0.9
Obnam benchmarking
Obnam benchmark specification
Glass's Fact 19 and open source
B-trees with cloning
Duplicate data in filesystems
GUI app to configure locale for GNOME
Hashlib patch for Enemies of Carlotta
Server maintenance styles
Keeping a journal
Lazyweb: B-tree code review?
Obnam performance requirement
Living with limited Internet access: saving web pages instead of bookmarking them
Autojen GPS-urkinta etenee
Obnam is feature complete (sort of)
Cable management while travelling
Computer driving licenses
Obnam storage API
LCA, rest of the week
LCA2010 Monday
Collaborative storytelling with audience voting
Obnam command line interface
Obnam, or once more a backup program
On free software parenting
bzr OO.o support?
Geotagging news
Brother P-touch QL-550 with Ubuntu 9.10 (karmic)
Dimbola 0.0.3
sftpsync
Ninja school taunting
Effi sananvapaus-juliste
Dimbola 0.0.2
Tags in Dimbola
Kirja-arvostelu: Elämäpeli, Ville Vuorela
Stop sending e-mail?
Street photography
Retired from Debian
Viimeinkin jotain rajaa holtittomalle sananvapauden käytölle mediassa!
The death of parody in Finland
Sähköautojen vero pois!
Queue, don't stack
Phone ringtones and stress
Dimbola background processing
My GNOME keyboard shortcuts
Dimbola prototype: a photo organizer
Listat eivät ole demokratiaa
Läpinäkyvä yhteiskunta
Outi Mäkelä vihaa minua
Onneksi olkoon, Piraattipuolue
Automatically connecting signals in PyGTK
Olen mies, olen siis pedofiili
Freedom in online services
Cranes for balconies
Kernel oops message compression
Lessons about travelling
Downloading updates faster
Bug exchange format
Semi-retiring from Debian
Uncluttering my life
Using zsync for .deb downloads: initial benchmark results
Giving up on freedom temporarily?
Rsync in Python
LRU cache for obnam in Python
On mono
IRC proxy for productivity
Laptop stickers begone!
Microblogging
Using mr on my laptop
Perustuslakituomioistuin Suomeen
The Pirate Bay kills online music business
Size of a new window
On the Okularm DRM feature
Time machine for logging
Mäkisen Paja - hyvä idea
Seurasaari, today
Kaupan portti sanoo piip!
Suomalaisen politiikan ongelmat
Personal data, personal organs
watch(1)
Toy Story 3 is coming
Switching editors
Stolen laptop, call home!
Secret Life of Machines
Online secure timestamping
Leaving Planet Debian
Kauhu-aiheinen taidetyöpaja selvästi toiminut hyvin
A Distributed Internet Witness Service
Dishwasher mutex
Declarative .deb maintainer scripts
Debian Developers per capita
Control-D confusion
Copy-on-write files
Libc is broken. What now?
Ubuntu 9.04 (jaunty) released
256 the movie manuscript
Saving files reliably under Unix
Personality conflict
Perustuslaki: kallis vessapaperi
Multitasking for humans
Desktop user logging service
GTD collection
Suomi-kalenteritiedosto vuodelle 2009
Reittiopas ja GPS ne yhteen soppii...
Manuaalisivujen kirjoittaminen – esitelmä Linux-teemaillassa
Lait kansatajuisiksi
Älä kailota edes ilman puhelinta?
Suvi Lindénin oma pikku maailma
Valtakoneisto: Ei sananvapaudella ole mitään väliä
Gartner: mobiles to replace landlines in business use
UDW session on piuparts
Still climbing onto the bandwagon
Masinointia Lex Nokiasta. Perkele.
Oikean nimen vaatiminen hs.fi:n keskusteluissa
Editor search continues
Notifications be gone!
Renaming a Linux host
Agree: Disagree Agreeably
Post-vacation e-mail processing
Using coverage.py with Python unittests to ensure good test coverage
Magazines on paper a thing of the past
Finding trust paths between PGP keys
PBS: The Machine That Changed The World
Finhack, 29.11. Forssassa
Piraattipuolueen kannattajakortit
system-cleaner in intrepid
Non-evil music stores
Huey packaging
Using KVM for Ubuntu ISO testing
Anonymity and trust
Selling my apartment
Sähköinen äänestäminen ei kelpaa koodaajille
Reason to become rich, #12765
CC music spammer
Privacy for free software development
Minor things, major obstacles
Parrot image drawn in pure CSS
Screensavers are evil
The Hugenholtz letter
Stress graph
Oikeusministerien luotettavuudesta
Oikeusministeriö on luotettava
My home directory, my name space
Python fstab library 1.0
Doping. Genetics. Blah.
Head, meet desk. Softly.
No more movies, music, TV
Finhack-idea
Five seconds to display a text message?!
I got wheels
Bold Bash prompt
NRJ Cash or Crash: typerä vai pahis?
RAID0 on gytha
edustajamme.fi
Linux-tekijä 2008
Scary things first, hard things second
Remember to uncomment
Vera on what women really want
My name is...
Progress bars everywhere!
Learning to cook
GNOME renaming tool
GNOME currency converter
Technorati entry
Reducing online distractions
Ouch, or things to remember when setting up a file server
Qemu/KVM caps lock