My 2020 setup

Update 2023 - updated links to the most current code store - git.cyplo.dev instead of sr.ht Hello and welcome to the second edition of me doing a summary of the year of using tech tools. Here’s a list of software and some hardware I find useful, either things that I use daily or things that make an unusual task pleasant instead of incredibly difficult. This is constantly evolving, so please mind the publish date of this post, please also check the last year’s installment as this article will make references to the previous setup. [Read More]

Don't let failures spread over your suite with process-based tests isolation

Being able to precisely control what failures in underlying systems occur and at what time can be really useful in achieving a fast and stable test suite. While I am a big proponent of dependency inversion and being able to control dependencies via the explicit injection points in your API, sometimes it’s impractical to do so. This is where fail can help us immensely, providing an escape hatch for situations like those as it allows to inject failures into previously defined failure points. [Read More]

Buttermilk cornbread

I like baking, as it can be something that does not involve any computers. Please have this recipe for cornbread, based on buttermilk and baked in a skillet. As for baking goes, this recipe is quite forgiving and you don’t need to watch ratios as closely as with others. Ingredients This is for a 20cm (8") skillet, which gives you enough bread for you and one other person to enjoy over a weekend. [Read More]

My 2019 setup

Update 2023: my dotfiles are self-hosted now at git.cyplo.dev; They also have a different structure than described here; I’ve removed now-dead links to github. Here’s a list of software and some hardware I find useful, either things that I use daily or things that make an unusual task pleasant instead of incredibly difficult. This is constantly evolving, so please mind the publish date of this post to gauge how dated it is. [Read More]

Fuzzers and how to run them.

I am fascinated by the concept of fuzzing. It fits well with my desire to test weird code paths by using more of computer’s time and less that of a programmer. What is fuzzing ? It’s a type of automated testing, especially good with finding edge cases in your code. It runs totally outside of your code and knows nothing about it - it just throws random data at it. Modern fuzzers instrument your code to be able to tell if by changing input they change the code paths covered and by doing that they try to achieve maximum coverage. [Read More]

Website refresh

Hello ! As you may have noticed - this website looks different now ! Why is that ? I’ve not only changed the visual theme but also a lot of underlying infrastructure. Let’s start with describing the old setup and see where we can improve. The site previously ran on Nikola, was built on Travis and then pushed to Netlify, which I later changed to Github Pages. While it worked it had some issues of its own; [Read More]

Generate Rust tests from data files

Sometimes you just have a bunch of example data laying around and you want to make sure your code works with all of them. Some of them are probably short and sweet and could live happily as doctests, which are amazing btw. But some of them are more awkward to present in such form, because, for example, of their size or number. Typically when you have an example of how the program should behave you write an example-based unit test. [Read More]