blog :: MasseR -> IO (Home)

Recent posts

    23 January

    Simple problems

    Sometimes you have simple problems with simple solutions. I am an avid tea drinker but I have trouble keeping tab on how long the tea has been steeping. Clearly I need a timer of sorts. Yeah, I know, it’s a problem solved millions of times. For a long time I used Tea Timer on android, but I had some problems with it. My main gripe with it is that it notifies the user by vibrating the phone. The problem is that if it’s in my pocket, I can’t feel it. Also if I try to use it with my tablet, it won’t work because it doesn’t vibrate. I tried the default timer on the phone, but it notifies by sound and most of the time, it’s not appropriate to be loud, eg. at work or when my wife is sleeping. Read more

    31 December

    Incremental backups with rsync

    Everybody says backups are important, right? Unfortunately I have never been too keen on doing backups. I have always thought that nothing I have is that important. But the reality is that working with Linux has given me important files over the years. Not sentimentally important or critically important, but important to me. Many of my configurations, be they vim, mutt or shell, are important, because they have evolved during many years. Over time I have found my sweet spot with my tools and it’s not easy to replicate. Many of my most important configurations are now under git repositories, but what happens to those files that are seldomly touched but are still important? Read more

    30 December

    QuickCheck notes

    Quickcheck is one of those tools that I want to use, but I’m not comfortable using them. It’s not that I don’t know how to use the tools, but the problem comes with the basics of QuickCheck. QuickCheck is a testing tool that checks the properties of the function. For some functions it’s more easy to think of properties than for others. In this document I try to record some of the properties for random functions that I have thought of. Read more

    23 November


    There has been a lot of talk about programming journals lately. The common motivation seems to be learning, by writing down what you have done when the problems have arisen and how you solved them. I am not a learning expert, but my take on it is that by writing down what you have done, when it’s still clearly on your mind, it forces you to shape it and process it. You process your mangled thoughts into tangible words and sentences and thus solidify the solution. There is also an added benefit of having a solution written down if the problem rears its head again. Read more

    23 August

    Relational algebra

    I’ve been obsessing over relational algebra for the past year or more. Relational algebra is a mathematical language for defining query operations. I first came to know it during our ‘Database II’ course in university, and at the time I wondered why on earth should I spend time studying this as clearly SQL is more relevant. We ended up doing our exercise project with HaskellDB which is an embedded domain specific language with roots in relational algebra, and I’ve been in love hate relationship with relational algebra ever since. For introduction to relational algebra read the wikipedia article. It took me some while to grok it, but it’s simple in heart. Read more

All posts...