Poop deprecation and shitty code

[ERT: 1m54s] Someone recently suggested a way to make the barrier to using deprecated code even higher. He was kidding, but I looked into how to make it work. Here is the result.


August 21 2016 - Safer paths, part 2 - Stop, Reconsider, Contribute

[ERT: 1m8s] Last week I published a paths library. I showed it to the Haskell subreddit and learned from their reaction.

August 14 2016 - Safer paths, part 1 - valid and typed paths

[ERT: 2m39s] Filepaths have been a pain in my neck for years. Paths are hard, overused, misused and mostly unsafe. In this post I present a newly released library that serves to make working with paths safer in the common use-case.

August 07 2016 - I have not reached the burrito point yet. - Xavier Goás Aguililla

July 31 2016 - Adding documentation to the GHC API

[ERT: 2m4s] Not very long ago, I tried to use the GHC API to do some static analysis. It turned out to be a lot more complicated than I expected. Now I was going to fix some of that.

July 24 2016 - Overcoming Boolean blindness with Evidence

[ERT: 1m54s] Boolean blindness has been discussed over and over and over and over again. The conclusion seems to be that always using Boolean values for decisions is a generally bad idea and that using church encoded lambda calculus instead is not much better (and impractical). Here are my two cents on the matter: Use evidence instead of Boolean values.

July 17 2016 - Custom validity and validity-based testing in Haskell

[ERT: 3m21s] Values of custom types usually have invariants imposed upon them. In this post I motivate and announce the validity, genvalidity and genvalidity-hspec libraries that have just come out.

July 10 2016 - Save time, not money

[ERT: 2m7s] It may come natural to try and save money wherever we can, but I argue this may be a bad idea.

July 02 2016 - Shell

[ERT: 18s] Instead of bash, I use zsh as my shell of choice. Here is how to set it up.

June 26 2016 - A configuration loading scheme for tools in Haskell

[ERT: 4m59s] Using arguments, configurations, settings, options or instructions in any language can be a struggle. There are quite a few libraries to solve just this problem and most of them involve either some global state or an object that is carried around through the program. Seeing as neither of these options are feasible and scalable in Haskell (when implemented naively), one has to think twice about how exactly to do it. In this blogpost I propose a general scheme to deal with all of these.