Ways to evaluate a gem

Experienced coders shared their thoughts about finding the perfect gem
21 June 2017   1657

Sometimes every coder faces with hard-solving issues. One “little” problem can provide you with headache and sleepless nights, spent on forums and web, searching for a solution. When you face a problem or difficulty, try to “look around”. There is a big chance that someone had already found a solution and you don’t have to “invent the wheel” again.


A dynamic, open source programming language with a focus on simplicity and productivity.

Ruby on Rails

Ruby on Rails (RoR) - a framework written in the Ruby programming language.

Luckily, Ruby and RoR has a strong, friendly and open community. There is large amount of ready-made gems, so, there is high probability to find the right one.

We’ve collected a list of advises from skilled developers, how to choose a right gem.

  1. Look through Readme file and try to understand what is written there. Joking aside, it’s really hard sometimes.
  2. Look at the number of stars and watches. Big and active community keeps project healthy. Large amount of users means that finding help will be much easier. Also, a collective mind is a great guide. But it is not smart to consider only this criterion.
  3. Date of last update shows how active the project is. But regular updates for simple code aren’t necessary, so, this criterion isn’t the main.
  4. Take a good look on project’s issues. Check, is it filled with bug reports or new add-ons, are there any active discussions, are they structured. Also, don't forget to check how many pull requests are closed.
  5. Look thru the forum posts and bug tickets of a specific gem do decide, are the maintainers act helpful? You have to decide, can you count on them if any big issues arise.
  6. Take a good look at the number dependencies. A “simple” gem can have a large number of dependencies. You should decide if you are able to put all of them into your project. Also, note that there's a risk of version conflict.
  7. Don' forget to look at official documentation. It is necessary for every serious project. Also, it has to be understandable and contain “real-life” examples.
  8. Check the code. Are you able to understand it? If something goes wrong, maybe you will have to rewrite some parts of it by yourself. And it's better for you to be able to do it.

Git 2.20 to be Available

Let's check updates and features of new version control system
11 December 2018   130

Distributed version control system Git has received another update. In order for Git 2.20 to appear, 83 developers made changes 962 to the zcode. According to the team, this is an order of magnitude higher than the same figure in the largest release of the 2.x.x branch.

The git branch -l command is now a shortened version of the git branch --list - it used to help run reflog during the creation of a new branch. Developers have limited the launch of git fetch: it is only possible with an indication of --force, to avoid problems with consistency when updating the link.

The git help -a and git help -av commands to help newbies display a more verbose output. To return to the old view, just type git help - no-verbose -a. In git send-email, it is possible to extract lines with addresses that end with “-by” from signatures. This is an incompatible change, and it can be disabled by adding to the --suppress-cc = misc-by command.

  • If the repository contains files whose addresses differ only in the case of letters, a warning will be displayed during the execution of git clone.
  • The git format-patch command received the --interdiff and --range-diff options, which in a note or comment list the differences between the existing and previous versions.
  • git mailinfo learned how to recover code patches sent by email with plain text and damaged due to hyphenation.
  • git multi-pack-index now fixes damage in .midx files.
  • Creating experimental commit-graph files for large repositories takes a lot of time, so the developers have provided a form of output about the state of the process.

Performance and Development Support

  • For working builds, the -Wunused-function compilation option is provided.
  • git submodule update is completely rewritten in C.
  • One of the continuous integration (CI) tests, designed to work with the unusual/experimental/random settings, now supports midx and commit-graph files.
  • A new mechanism for finding objects among a large number of pack-files. It relies on combining all .idx files into one.

The previous version of the system was released in September 2018.