Articles
2026
2024
2023
- Sum of random cards puzzle 23 Dec
- AeroPress Go measurements. What volume do AeroPress marks correspond to? 23 Jul
2021
- How much current does an active bass guitar draw from a 9V battery? 14 Nov
- A data structure puzzle 24 May
- Understanding modern Linux routing (and wg-quick) 27 Feb
- My podcast editing workflow in REAPER 21 Feb
2020
- StateT vs. IORef: a benchmark 29 Dec
- Laptop vs. desktop for compiling Haskell code 22 Dec
- system2 in R considered inadequate 11 Dec
- Sort directories by the newest file 4 Dec
- Don't buy tempered glass PC cases 3 Nov
- Avoid the months() and years() functions from lubridate 30 Aug
- Configuring PulseAudio for Audient EVO 4 10 Jul
- How I integrate ghcid with vim/neovim 8 Jul
- Which dynamic mic should you buy? 13 Jun
- Visualizing Haskell heap profiles in 2020 14 May
- Compile and link a Haskell package against a local C library 7 Apr
- Binomial coefficients via integer division 22 Mar
- Does micro-USB cable affect charging speed? 8 Mar
- Break on NaN in gdb 11 Jan
2019
- Significance level vs. the type I error chance, or how to interpret conditionals 21 Dec
- Bioinformatics events in Europe in 2020 15 Dec
- Long-term reminders 22 Nov
- A blind microphone comparison 4 Sep
- A curious associativity of the <$> operator 22 Jul
- Decompose ContT 19 Jul
- Why would you use ContT? 7 Jun
- How (not) to convert CDouble to Double 14 May
- Fix a torrent file encoding 7 May
- Lazy validation 2 Mar
- Surprises of the Haskell module system (part 2) 26 Jan
- A better noise gate 12 Jan
- Homology, similarity, and alignment 5 Jan
2018
- Bioinformatics events in Europe in 2019 6 Dec
- Tasty 1.2 supports dependencies between tests 1 Dec
- How do I record a podcast remotely? SquadCast vs. Zencastr vs. Cast vs. other options 28 Oct
- How to pass a logical matrix to RStan 24 Aug
- Estimating the fraction of recurring events 22 Aug
- logit() and logistic() functions in R 11 Aug
- Can you cheat the Brier score? 9 Aug
- Probability of a regex occurrence 1 Aug
- Combine ChIP-seq peaks from multiple replicates via consensus voting 11 Jul
- Sometimes all you need is to cut adapters 19 Jun
- Encrypted reminders with Nudgemail 15 Jun
- QuickCheck vs. SmallCheck 25 May
- Disable Sony What's New notifications 14 May
- What is this weird math letter? 11 May
- GHC-style note snippet for Vim 2 May
- Is differentiability arbitrary? 1 May
- Rational approach to conferences 22 Apr
- Seneca on social networks 14 Apr
- The correct way to mark formulas in LaTeX 12 Apr
- Install all R packages used in the code 2 Apr
- Fighting referral spam 25 Mar
- Notes on Jekyll 24 Mar
- Export transactions from Santander 4 Mar
- Undefined behavior with StablePtr in Haskell 3 Feb
- RPM packager's cheat sheet 25 Jan
- Asymmetry of costs in (t-)SNE 23 Jan
- New patterns in tasty 8 Jan
2017
- Where did all my probability go? 29 Dec
- Bioinformatics events in Europe in 2018 27 Dec
- Explained variance in PCA 11 Dec
- Introduction to golden testing 4 Dec
- Algebra of permutations in R 18 Nov
- Estimate program run time 9 Nov
- Does correlation imply causation? 28 Sep
- How Booking.com manipulates you 17 Sep
- Understanding Asymmetric Numeral Systems 20 Aug
- Call an R function from C 18 Aug
- 6 ways to manage allocated memory in Haskell 6 Aug
- Haskell library in a C project 26 Jul
- Linux audio recording guide (PulseAudio or PipeWire) 21 Jul
- All vk.com IP addresses 14 Jul
- Can probability be greater than one? 30 Jun
- Generic unification 17 Jun
- On friendly contributing policies 12 Jun
- Word vs. Int 5 Jun
- Universally stateless monads 4 Jun
- Why your podcast needs https 22 May
- Convert time interval to number in R 18 May
- Please help me with these open source Haskell projects 4 May
- Generic zipWith 25 Apr
- traverse-with-class 1.0 release 23 Apr
- Disable weird indentation for R in vim 3 Apr
- Deploying MathJax 2 Apr
- Increase the open files limit on Linux 26 Mar
- Haskell without GMP 10 Mar
- Group data by month in R 22 Feb
- Theory behind RSEM 29 Jan
- How much space does an 8-bit integer occupy in C and Haskell? 25 Jan
- Getting Random Things Done: fetching a random card from Trello 22 Jan
- Nested monadic loops may cause space leaks 10 Jan
2016
- optparse-applicative quick start 30 Dec
- Matching country names by local alignment 11 Dec
- Accuracy of quantile estimation through sampling 30 Nov
- RNA-Seq normalization explained 28 Nov
- Make ~/.pam_environment work again 8 Nov
- Electoral vote distributions are polynomials 28 Oct
- Mean-variance ceiling 20 Oct
- The rule of 17 in volleyball 19 Oct
- How to prepare a good pull request 18 Sep
- A case for static linking in scientific computing 9 Sep
- Extract the first n sequences from a FASTA file 23 Aug
- Docker configuration on Fedora 18 Aug
- Does it matter if Hask is (not) a category? 7 Aug
- Debugging a CUPS Forbidden error 8 Jul
- Install Fedora Linux on an encrypted SSD 28 Jun
- Predicting a coin toss 14 Jun
- Surprising reciprocity 2 Jun
- Basic HTTP auth with Scotty 14 Apr
- Descending sort in Haskell 2 Apr
- rank vs. order in R 19 Mar
- Reducing boilerplate in finally tagless style 3 Feb
2015
- Fixing "Permission denied (publickey)" after an SSH upgrade 21 Dec
- Torsors, midpoints, and homogeneous coordinates 16 Dec
- Testing FFT with R 5 Dec
- Simple FFT in Haskell 4 Dec
- Static linking with ghc 26 Oct
- MonadFix example: compiling regular expressions 2 Sep
- Better YAML parsing 26 Jul
- How Haskell handles signals 6 Jul
- How to force a list 28 May
- Announcing lambda prover 27 May
- Smarter validation 2 May
- Safe concurrent MySQL access in Haskell 17 Apr
- Examples of monads in a dynamic language 22 Feb
- Foldable, Traversable, and parametricity 12 Feb
- Dealing with broken Haskell packages 9 Feb
- Spiral similarity solves an IMO problem 31 Jan
- Recognizing lists 29 Jan
- Lexical analysis with parser combinators 2 Jan
2014
- Denotational design does not work 31 Dec
- Taking advantage of type synonyms in monad-control 26 Dec
- Extensible effects: abstracting from the transformer 6 Dec
- Rebalancing open source portfolio 1 Nov
- Dependent Haskell 5 Sep
- What you need to know about bracket 30 Jul
- Type-based lift 15 Jul
- How to run SQL actions in persistent 7 Jul
- Two failed attempts at extensible effects 14 Jun
- The problem with mtl 11 Jun
- Avoid equational function definitions 9 May
- Lens is unidiomatic Haskell 24 Apr
- Setting up Samsung Wireless Printer on Linux 21 Apr
- JSON validation combinators 20 Apr
- Find out the type of an expression/function with typed holes 13 Mar
- Happy, Alex, and GHC 7.8 8 Mar
- cabal sandbox tips 5 Mar
- tasty-0.8 and other news 3 Mar
- My Haskell will 8 Feb
2013
- Resources in Tasty (update) 29 Dec
- Custom options in Tasty 20 Dec
- On column positions in vim 14 Dec
- Resources in Tasty 10 Dec
- Why PVP doesn't work 5 Oct
- Flavours of free applicative functors 31 Mar
- gtraverse vs. gfoldl 29 Mar
- Ergative verbs in programming 14 Mar
- Generalizing generic fold 11 Mar
- Open your name resolution 4 Mar
- Announcing SmallCheck 1.0 19 Feb
- Generic uncurry 29 Jan
- Subtractable values are torsors 8 Jan