Ways to evaluate a gem

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

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.26 to be Released

Git is one of the most popular source code management system and new version brings a lot of changes and updates
23 March 2020   277

Git 2.26.0 distributed source code management system is available. Git is one of the most popular, reliable and high-performance version control systems, providing flexible non-linear development tools based on branch branching and merging. To ensure the integrity of the story and resistance to changes in hindsight, implicit hashing of the entire previous history in each commit is used, and it is also possible to digitally sign the developers of individual tags and commits.

Compared to the previous release, the new version adopted 504 changes prepared with the participation of 64 developers, of which 12 took part in the development for the first time. Key innovations:

  • The default transition to the second version of the Git communication protocol, which is used when remotely connecting the client to the Git server, has been completed.
  • Added option "--show-scope" to the "git config" command, which makes it easier to identify the place in which certain settings are defined
  • The credential binding settings allow the use of masks in the URL.
  • The extension of experimental support for partial clones was continued, which allows transferring only part of the data and working with an incomplete copy of the repository.
  • The performance of the "git grep" command, which is used to search both in the current contents of the repository and in historical revisions, is noticeably increased.
  • Added support for autocompletion of input of subcommands, paths, links, and other arguments of the "git worktree" command, which allows working with several working copies of the repository.
  • Added support for vivid colors for which there are ANSI escape sequences.
  • A new version of the fsmonitor-watchman script has been added, which provides integration with the Facebook Watchman mechanism to speed up tracking of file changes and the appearance of new files.
  • Optimizations have been added to speed up partial clones operations related to the use of bitmap machinery to avoid full enumeration of all objects during recoil filtering.
  • The git rebase command has been moved to another backend using the default 'merge' mechanism (previously used for rebase -i) instead of 'patch + apply'.
  • An example of the authentication parameter handler specified through .netrc is brought to a form suitable for use out of the box.
  • Added gpg.minTrustLevel setting to set the minimum level of trust for various elements that perform digital signature verification.
  • Added "--pathspec-from-file" option to "git rm" and "git stash".
  • Continued improvement of test sets in preparation for the transition to the SHA-2 hash algorithm instead of SHA-1.

Get more at the official mailing and the  Github blog and the Github.