Hash table is a data structure that stores data in key-value pairs. It is also named as a dictionary or associative array. It stores data in a way that enables lookup and insertion in constant O(1) time. These properties of a hash make it one of the most useful data structures in a programmer's toolbox. The main question is where does this speed come from and how does it work?
In the previous articles of the series we decided on the required playground functionality and prepared a [runtime infrastructure for game bots and sandboxes](https://anadea.info/blog/it-duel-2017-implementation-part2-digital-ocean-droplets-and-dokku-setup). It's time to actually program the game engine.
In the first article of the series, we recalled the rules of the game and the technical characteristics of the game engine. Now, let's describe how to use DigitalOcean and Dokku to allow players to write a bot in multiple languages, while having guaranteed equal resources in runtime and a pleasant deploy procedure.
Rspec is an awesome thing that was created for ruby community. Most of us write tests. However, sometimes in large projects our test becomes really slow. So, each launch of the test really hurts and it does not meter whether you launch your test before commit/push or on CI. When your test suits pass over 30 minutes - something definitely went wrong.
Sometimes, when you are working with a large codebase, your `routes.rb` files grow really fast and become very dirty.There are several things that make your routes file bigger:* Customization of devise;* Specific gems that mount additional routes (Active Admin, ActionCable);* Sidekiq + SidekiqWeb + Basic authentication;* Namespaces with APP or API.
Сarrierwave is a popular image upload gem used by the Rails community to upload files to the server.Recently I had a task to upload two types of images into the application. Under the hood,the only difference between them was the target directory on the server. Sounds pretty simple, right?
When you're looking for an outsourced Ruby on Rails developer for your project, just like with any other third-party provider, you want to find someone who has extensive experience, easy to collaborate with and actually does the work that meets your expectations. It may be challenging to detect an expert who truly meets all the requirements.
The first and the most important thing you need to know about Google Maps service – it is awesome! It's an extremely fast, reliable, highly customizable freemium tool.