I love experimenting and I like to write and share about my experiments. It starts with exploration, exploring tools and applications for a given problem. This exploration of tools is like jumping into the rabbit hole of tools, i.e., discovering other tools for other purposes. Once the tools are found, then starts the phase of Experiments. It may take some hours or days to finish experimenting with them. If the tools served my purpose, I continue using them for years. This is how I discovered many interesting programming languages, tools, applications, and web services.
The advantage of experimenting with multiple applications helped me understand some common and necessary features across the applications as well as interesting scientific and technical challenges. As they say, there is no one single solution to a problem, there are multiple possible ways to achieve a solution. Yet some solutions are more effective than the others are and some problems have no quick solution.
I share some personal experiments on this blog, especially my experiments with Inkscape. I started using the basics of this blog and today, I am using many interesting features. The same is the case with my usage of GIMP. It is interesting to observe my learning curve. I liked these tools, and experimented with them, improving each time, with more and more practice. During this time, I also continued my reading on similar topics and associated technologies. This helped me to further link previous experiences in data science, like working with data formats, XML, SVG, JSON, etc. Another example, I would give is my experiments with Linux containers, especially Docker. This helped me to discover the interesting way of layered unification file systems based on which the Docker images have been built.
Sometimes, experiments are needed until finding the right tool for our work. Unfortunately, this may take years for some use cases. Some problems are difficult to solve and there are several criteria to measure the feasibility of a solution. Some applications provide temporary solutions. Multiple approaches may sometimes guide us to an optimum solution, or in some cases, help to identify different categories of the given problem. Other factors that may help in identifying the appropriate solution are execution time, latency, disk space usage, memory consumption, processor usage, knowledge expertise of the contributors, learning curve, flexibility of the tool, etc.
Experiments with multiple tools and solutions are crucial before making a final decision. Documented experimentation should be part of our regular practices and official planning. It will not help us to ignore some bad practices, but may also help us propose enhancements and suggestions for new research and scientific and technical problems.