A tale of two tools

Recently I had two epiphanies in the tooling I use.

The first one happened as I was tired of my development environment being too slow when I was developing on Windows. I have a very powerful Mac Book Pro with a lot of RAM and an SSD hard disk, I did not spare any money on my main working tool. For my virtualization needs I was using Virtual Box, the free virtualization software from Oracle. I considered Boot Camp as the obvious choice to have the maximum raw power, but two things discouraged me:

Continue Reading

Ledger: A DSL for accounting

Ledger is a Unix command line tool to do double-entry accounting using only text files. I personally use this tool to manage my personal finances, but since this blog is about Domain Specific Languages, in this post I focus on the domain-specific language used by this tool to model the general ledger used in accounting.

The goal of the language is to represent an accounting ledger, and the core construction is the transaction. So to represent a transaction, you just write the following in a text file and you have your first ledger file.

Continue Reading

What happens to open sources project who lose their main sponsor

I recently read the Xtext framework is seriously needing contributions or its future is at risk. The GitHub issue of the problem dates from March 2020, so the problem is old and I just learned about it. This is a serious problem with open source software that I’ve seen repeats and repeats. I saw the exact same thing happen to Play Framework, another project I used a lot.

The script is the following:

  • Company X starts an Open Source project to innovate in some domain
  • Company X maintains the Open Source for a while, until they pivot, lose interest or something else
  • Company announces that it will give the project back to the community and simply maintain it as part of their paid consulting services

I want to be clear that I do not judge the companies for doing this. Companies are there to make money, and if open an source project is not giving them a good ROI, then it is their call to abandon it to stay in business. The only thing that I feel companies have to do is being transparent about their intentions and if possible lead the transition process towards the new

Continue Reading

How DSLs can remove the bottleneck from the development team

In his book, The Goal, Eliyahu M. Goldratt presents a way to optimize a plant using his Theory of Constraints. This book lays out the concepts that later will inspire the agile methodologies, which is applying the Theory of Constraints to the development of software. The book The Phoenix Project relates the concepts explained in The Goal with IT and software development.

The gist of the approaches in these books is the following. To optimize a system (for example, a development organization) we must:

Continue Reading

Use-cases for rule-based automation

In my last post post I introduced different alternatives to simplify the creation of RPA bots. In this post I dig deeper into one of those approaches: rule-based automation.

Rule-based automations are based on triggers and actions, and are simple and linear. However, they can be user to support very interesting automations. Rule-based automations are easy to implement, to test and to deploy, making them an ideal candidate to start an automation journey. In this post we present 4 different use-cases for rule-based automation.

Continue Reading