One of the hottest trends in the open source community is taking a “domino” approach to developing software solutions. Rather than starting with one piece of functionality, multiple tools are applied to the existing codebase, in order to derive as much as possible from the existing codebase. Because of this, many teams either awkwardly graft various tools onto their codebases, or they create their own custom framework or, again, they tolerate inefficiency due to lack of custom development. This post introduces Domino, a new open source tool which has built upon the open source community’s foundation to support advanced data analysis workflows.
Domino is the tool you may have already heard of at some point in your career. A robust piece of software with a simple yet powerful user interface, it allows data scientists to organize, perform exploratory analysis and, when appropriate, generate visual or report results in any language. The great thing about Domino is that it is free! This makes it extremely affordable for smaller research teams or university research labs without a dedicated but large budget for scientific research.
Although it is primarily a data science tool, Domino is also useful for developers who prefer not to commit to proprietary software licensing. As a consequence, many of Domino’s users can take advantage of the full range of functionality available without having to worry about being locked into an expensive software license. Another benefit of the open source code is that it allows users to contribute their own enhancements and improvements back into the codebase. This makes the software more stable and the result from any experimentation much more likely to be a reliable product.
Domino was designed around a simple concept: make it easy for a single player (the user) to begin playing against another player (the researcher or developer) without having to deal with all of the initial setup or clutter associated with more traditional gambling games. For example, dominoes do not have jokers and other additional types of card decks that might otherwise make a hand composition difficult to formulate. Instead, players can focus on strategy without having to think about what cards they might “have” or what cards they “want” at this particular point in the game.
Domino has many similarities with standard gambling games in that each player begins with either a single color coin or no coins at all. After the player has been dealt a hand, there are two decisions that need to be made: whether or not to go for a direct continuation (also referred to as the straight option) and whether or not to change directions. If you have held a concealed card, you may decide to continue with your current strategy and pass your turn. Alternatively, if you have an open card, you may decide to change your strategy and try for a straight kill. Once you have made these decisions, you proceed with the play to the next round or action.
Dominoes, like other tile-based games, are very fast paced and depend heavily on good decision making skills from all of the players in a game. When playing dominoes, you should keep in mind the main goal that is to reach the winning end within the shortest amount of time. As the dominoes fall to one side and stop falling, it is the job of each player to place their tile onto the board in such a manner that they can end the play before any other players reach the winning end. Since dominoes are a zero sum game, each player needs to place their tile into the pot as soon as possible so that other players do not have free turns and can not place their tiles onto the board.