For classical composers, such as Bach, beauty is in the essence of the composition, a beauty that is transmitted to us while the music tells…
Home of the Atomic Commit
For classical composers, such as Bach, beauty is in the essence of the composition, a beauty that is transmitted to us while the music tells…
Before you start reading, yes, the title is a shameless clickbait.
We all praise almighty git
. It is THE tool for source version control. It has all the options, all the commands, it is lightweight yet powerful… what could possibly be wrong?
Leadership.
It sounds powerful, extremely powerful in fact. We all want to feel that power, don’t we?
Many of us have the impression that companies are only interested in hiring inspiring, dynamic leaders. From janitors to CEOs, it is a non-negotiable skill. This creates a pressure on employees, making us blindingly pursue leadership. It seems that if you are not an entrepreneur or a leader, then there is no place for you in the industry.
Here is a second delivery of quick git
tips, i.e. easy-to-incorporate tips that can have a significant impact on your workflow. Nothing hidden or convoluted here, these tips are extracted and summarized from the official Pro Git Book.
git
is great, and its documentation is no exception. By simply reading the Git Book, one can get quite proficient on git
, thanks to the good balance between theory and examples.
However, most times I found myself learning git
the harder way, using Google and Stackoverflow and looking for very little and specific pieces of information. While this is great for solving daily problems, it does not really provide the best learning experience. To achieve that, it is necessary to go to the aforementioned Git Book.
In addition to that, the book is filled with very useful commands which can significantly improve your workflow. They are simple, and once you learn them, you will wonder what has been going on with your life before that moment.
I present this blog entry as a way to summarize and collect those commands. Today, we will talk about cleaning the git
repository.
Anyway, forget about this blog and go read the Git Book.
One of the most interesting topics found in the state-of-the-art technological developments is that of algorithms. We are reaching a significantly advanced stage in which it is possible to optimize and control many crucial aspects of our societies, including Smart Grids, stock markets and even prison systems (at least in the US).
However, these also raises some concerns when it comes to the role that humans play. Some fear that human beings will transition and become mere passive agents, as opposed to active actors, in their own daily lives. Taken to an extreme, it might be the case that our participation will no longer be required in order for us to live a happy life. Such participation may even be forbidden, as it would be considered that humans are biased and error prone.
We all know it: the git
command line tool is extremly powerful, and chances are that you will not need any other tool for doing the job. However, it is true that performing some tasks, like navigating the repository history, is more intuitive using software such as Gitkraken or even gitk.
Instead of selling your soul and embracing unholy tools like those, it is possible to use tig, a command line tool based on ncurses (so it is not simply text-based, including quasi-graphical elements).
I would like to share a quick tip which can highly improve your workflow (at least it did with mine). If you usually work with the command line, you might have experienced that it is sometimes difficult to remember where is a certain file located. You might have some idea of which directory it was it in, but you might not even remember exactly the file name. For sure, tools like find
can help you, but they are not as fast and convenient to do as one might like.
If you have ever felt like this, you need fzf.
Every single programmer that has worked with either C or C++ has learned to maintain a love-hate relationship with them. They are powerful, efficient and pretty much everywhere, from embedded devices to high-end servers. However, they are also a pain to work with. Taming those languages requires experience and a lot of hard work, even for the most basic tasks.
Despite all of their drawbacks, I still like working with them. But deep in my soul I was craving for a modern alternative, with their advantages but without having to sleep with a 1000+ pages long C++ reference by my side.
Recently I had the oportunity to start implementing unit tests in a C++ project. The chosen testing framework was CppUnit, which is an port for C++ of Java’s JUnit. To be honest, CppUnit is not as popular as it used to be, specially compared with its more handsome and stilysh cousin JUnit (at least JUnit seems to have a website written after 2005).
The main issue is that documentation comes from fairly old articles, and it is not as accesible and up-to-date as with other projects. Taking into account that modern alternatives exists, such as googletest, one could be tempted to run away and never look back. However, let’s not be afraid and try to come up with a working example of CppUnit.