The Curious Engineer

All blogs / Haskell

Roman Cheplyaka

ro-che.info/articles

Roman Cheplyaka — Ukrainian software developer and bioinformatician. Articles on Haskell, mathematics, programming and bioinformatics.

HaskellMathLinux / UnixElectronicsGeneral

Posts
189 from 2 Jan 2012 to 1 Aug 2026
Posting
now and then (4 in the last year)
Kind
personal blog
Feed
https://ro-che.info/articles/rss.xml

2026 4

  1. Що брати з собою на БЗВП?
  2. Military
  3. Рейтинги шахових розрядів і звань
  4. Chess

2024 2

  1. Alice and Bob flipping coins puzzle
  2. Mathematics

2023 2

  1. Sum of random cards puzzle
  2. AeroPress Go measurements. What volume do AeroPress marks correspond to?

2021 9

  1. How much current does an active bass guitar draw from a 9V battery?
  2. Music
  3. Electronics
  4. A data structure puzzle
  5. Programming
  6. Understanding modern Linux routing (and wg-quick)
  7. Linux
  8. My podcast editing workflow in REAPER
  9. Podcasting

2020 17

  1. StateT vs. IORef: a benchmark
  2. Haskell
  3. Laptop vs. desktop for compiling Haskell code
  4. Statistics
  5. system2 in R considered inadequate
  6. Rstats
  7. Sort directories by the newest file
  8. Don't buy tempered glass PC cases
  9. Avoid the months() and years() functions from lubridate
  10. Configuring PulseAudio for Audient EVO 4
  11. How I integrate ghcid with vim/neovim
  12. Which dynamic mic should you buy?
  13. Visualizing Haskell heap profiles in 2020
  14. Compile and link a Haskell package against a local C library
  15. Binomial coefficients via integer division
  16. Does micro-USB cable affect charging speed?
  17. Break on NaN in gdb

2019 16

  1. Significance level vs. the type I error chance, or how to interpret conditionals
  2. Linguistics
  3. Bioinformatics events in Europe in 2020
  4. Bioinformatics
  5. Long-term reminders
  6. Web
  7. A blind microphone comparison
  8. A curious associativity of the operator
  9. Decompose ContT
  10. Why would you use ContT?
  11. How (not) to convert CDouble to Double
  12. Fix a torrent file encoding
  13. Lazy validation
  14. Surprises of the Haskell module system (part 2)
  15. A better noise gate
  16. Homology, similarity, and alignment

2018 27

  1. Bioinformatics events in Europe in 2019
  2. Tasty 1.2 supports dependencies between tests
  3. How do I record a podcast remotely? SquadCast vs. Zencastr vs. Cast vs. other options
  4. How to pass a logical matrix to RStan
  5. Estimating the fraction of recurring events
  6. logit() and logistic() functions in R
  7. Can you cheat the Brier score?
  8. Probability of a regex occurrence
  9. Combine ChIP-seq peaks from multiple replicates via consensus voting
  10. Sometimes all you need is to cut adapters
  11. Encrypted reminders with Nudgemail
  12. QuickCheck vs. SmallCheck
  13. Disable Sony What's New notifications
  14. What is this weird math letter?
  15. GHC-style note snippet for Vim
  16. Is differentiability arbitrary?
  17. Rational approach to conferences
  18. Seneca on social networks
  19. The correct way to mark formulas in LaTeX
  20. Install all R packages used in the code
  21. Fighting referral spam
  22. Notes on Jekyll
  23. Export transactions from Santander
  24. Undefined behavior with StablePtr in Haskell
  25. RPM packager's cheat sheet
  26. Asymmetry of costs in (t-)SNE
  27. New patterns in tasty

2017 34

  1. Where did all my probability go?
  2. Bioinformatics events in Europe in 2018
  3. Explained variance in PCA
  4. Introduction to golden testing
  5. Algebra of permutations in R
  6. Estimate program run time
  7. Does correlation imply causation?
  8. How Booking.com manipulates you
  9. Understanding Asymmetric Numeral Systems
  10. Call an R function from C
  11. 6 ways to manage allocated memory in Haskell
  12. Haskell library in a C project
  13. Linux audio recording guide (PulseAudio or PipeWire)
  14. All vk.com IP addresses
  15. Can probability be greater than one?
  16. Generic unification
  17. On friendly contributing policies
  18. Open source
  19. Word vs. Int
  20. Universally stateless monads
  21. Why your podcast needs https
  22. Convert time interval to number in R
  23. Please help me with these open source Haskell projects
  24. Generic zipWith
  25. traverse-with-class 1.0 release
  26. Disable weird indentation for R in vim
  27. Deploying MathJax
  28. Increase the open files limit on Linux
  29. Haskell without GMP
  30. Group data by month in R
  31. Theory behind RSEM
  32. How much space does an 8-bit integer occupy in C and Haskell?
  33. Getting Random Things Done: fetching a random card from Trello
  34. Nested monadic loops may cause space leaks

2016 21

  1. optparse-applicative quick start
  2. Matching country names by local alignment
  3. Accuracy of quantile estimation through sampling
  4. RNA-Seq normalization explained
  5. Make ~/.pam_environment work again
  6. Electoral vote distributions are polynomials
  7. Mean-variance ceiling
  8. The rule of 17 in volleyball
  9. How to prepare a good pull request
  10. A case for static linking in scientific computing
  11. Extract the first n sequences from a FASTA file
  12. Docker configuration on Fedora
  13. Does it matter if Hask is (not) a category?
  14. Debugging a CUPS Forbidden error
  15. Install Fedora Linux on an encrypted SSD
  16. Predicting a coin toss
  17. Surprising reciprocity
  18. Basic HTTP auth with Scotty
  19. Descending sort in Haskell
  20. rank vs. order in R
  21. Reducing boilerplate in finally tagless style

2015 18

  1. Fixing "Permission denied (publickey)" after an SSH upgrade
  2. Torsors, midpoints, and homogeneous coordinates
  3. Testing FFT with R
  4. Simple FFT in Haskell
  5. Static linking with ghc
  6. MonadFix example: compiling regular expressions
  7. Better YAML parsing
  8. How Haskell handles signals
  9. How to force a list
  10. Announcing lambda prover
  11. Smarter validation
  12. Safe concurrent MySQL access in Haskell
  13. Examples of monads in a dynamic language
  14. Foldable, Traversable, and parametricity
  15. Dealing with broken Haskell packages
  16. Spiral similarity solves an IMO problem
  17. Recognizing lists
  18. Lexical analysis with parser combinators

2014 20

  1. Denotational design does not work
  2. Taking advantage of type synonyms in monad-control
  3. Extensible effects: abstracting from the transformer
  4. Extensible effects
  5. Rebalancing open source portfolio
  6. Dependent Haskell
  7. What you need to know about bracket
  8. Type-based lift
  9. How to run SQL actions in persistent
  10. Two failed attempts at extensible effects
  11. The problem with mtl
  12. Avoid equational function definitions
  13. Lens is unidiomatic Haskell
  14. Setting up Samsung Wireless Printer on Linux
  15. JSON validation combinators
  16. Find out the type of an expression/function with typed holes
  17. Happy, Alex, and GHC 7.8
  18. cabal sandbox tips
  19. tasty-0.8 and other news
  20. My Haskell will

2013 14

  1. Resources in Tasty (update)
  2. Custom options in Tasty
  3. On column positions in vim
  4. Resources in Tasty
  5. Why PVP doesn't work
  6. Flavours of free applicative functors
  7. gtraverse vs. gfoldl
  8. GTraversable
  9. Ergative verbs in programming
  10. Generalizing generic fold
  11. Open your name resolution
  12. Announcing SmallCheck 1.0
  13. Generic uncurry
  14. Subtractable values are torsors

2012 5

  1. Monads in dynamic languages
  2. Surprises of the Haskell module system (part 1)
  3. Haskell recipe: reading list of lines
  4. Reasoning about space usage in Haskell
  5. Composing monadic effects