By Sudeep Tarlekar @ BigBinary
We’re constantly looking for ways to eke out the last sliver of performance from our code, machines and platforms. We’re therefore very excited about the arrival of JIT-like performance optimizations in Ruby. But what really is MJIT? Read on to find out.
By Jeremy Wagner
By Timo Stöttner
By Lee Briggs
Your Kubernetes cluster got you down? Hearing the siren song of AWS Fargate? Tempted by the promise of easy scalability in seconds? Lee puts forth an honest and captivating comparison of both worlds – and spins a cautionary tale.
– whatthegem – a CLI tools attempting to answer the most common questions one can have about a gem
– ruumba – have Rubocop lint your ERB templates as well as your code
Bonus! Did you get one of those fancy new WPA3-enabled routers? Bad news: WPA3 may be pwnable almost as easily as WPA2. 😢
In various sources you can read that Ruby is a programming language that is falling down. A simple stereotype that is yet not true. Clients often ask me about the advantages of using Ruby on Rails, as it is widely regarded as a less popular language, comparing to the others. Therefore, in this article, I would like to present to you the most important features of Ruby.
I will not hide the fact that I am a big Ruby supporter. As well as its Rails framework. At Codest, we have been realizing projects for our clients for 10 years. And this language works perfectly well there.
However, not everyone knows its most important advantages, and there are quite a lot. I have decided to choose the five most interesting ones and write a little bit more about them.
Quite often customers ask me about the fastest and most effective way of their product’s software development. Then I recommend the MVP approach. You can read about this in my recent article. Why even mention this? That is because Ruby ideally suits this type of solution. Ruby provides an opportunity to create basic application functionalities in a relatively short time. The progress of work, especially at its initial stage, is faster in Ruby than in other programming languages. In addition, Ruby is very flexible. It does not limit a programmer, who can delete or edit a code’s content at any time.
In addition, MVP also provides greater security and stability. During the development process, clients often change their expectations towards the project. With time, it turns out that some solutions are not needed, and, in turn, ask to add some other functionalities, that were not initially assumed. In my opinion, these are some of the common threats to projects that can be eliminated thanks to MVP.
Ruby, in combination with its most popular Rails framework, creates an ideal environment for the development of web applications. Why? It is a programming language that provides developers with great work comfort. Ruby and Ruby on Rails use the latest programming tools, which affect the time efficiency of an implemented project. When creating a web application, its first functionalities can be obtained much faster and with much less effort than the other programming languages. Therefore, the progress of application development, especially at the initial stage, is much larger.
Ruby is a programming language, where quality is of outmost importance. Developers write numerous tests, which means that software has fewer errors. This is quite important as later you do not have to waste time making additional corrections and can focus on further software development.
It is also worth noting that Ruby, in conjunction with the Ruby on Rails framework, provides mechanisms that affect application security. It is built-in protection against XSS, CSRF and SQL Injection attacks, which are rated among the most popular attacks on web applications.
The list of great brands that decided to use this language for their product development proves that Ruby is more than effective. These are such primary brands as Twitter, AirBnB, Groupon, Spotify, Helpling, Kesko Senukai Digital, Slideshare and many others.
Do you know that Ruby was classified in ‘Top programming languages 2018’ on Github? Moreover, the Ruby on Rails community, the most popular Ruby framework, is being actively developed on this site. At this moment, it already has nearly 4,000 users.
A wide community formed around this language is undoubtedly one of the key factors in its development. It provides stabilization. Still another highlight worth mentioning is that Ruby creates a low entry barrier for novice programmers. It is highly appreciated by the developers for both simplicity and the ability to acquire new skills in no time.
Stack OverFlow has published the latest report on software development in 2019. For the needs of this research, surveys were conducted with nearly 90,000 developers worldwide. We can learn a lot of really interesting stuff from that source. We chose a few of the most curious ones, which we are going to present in this article.
Stack OverFlow conducts annual research of software development worldwide. Developers, occupying different positions and programming in many languages, answer questions that allow determining their preferences, technologies they use and find out about current trends in the software development market.
1. Python is the fastest developing programming language.
3. jQuery is the most popular web frameworks. Among developers, there is also a great interest in Vue.js and Ruby on Rails among developers.
4. Over half of the respondents declare that they wrote their first code before the age of 16. Moreover, more than 70% admit that they did not graduate in the field of programming.
5. 32% of respondents declare that in the last year they have changed their place of work. On average, 1-2.8% of respondents decided on such a move 1-2 years ago.
6. 24.5% of developers surveyed declare that they decide to work remotely several times a month. You can read about how to manage remote developers here.
7. The biggest challenges associated with productivity are: distracting work environment, meetings and tasks unrelated to the development process.
8. The average tech salary of the manager is $ 95k. In the case of a developer (specialist) the sum is $ 71k.
9. 74.7% of the surveyed developers declare that they are happy to read technical articles written by other developers. 62.9% are most interested in the courses, while 55.1% positively rejects the possibility of attending meetings.
10. Among all the respondents, these are the Chinese developers who are mostly positive towards the future, believing that people born today will enjoy a better life. On the other side are the developers from Germany and France, who perceive the future of the industry in quite a somber light.
One day 3 years ago in the Codest team we prepared a great Cody game for Ruby programmers. In today’s article, I would like to describe what the work on this project looked like and above all show you the code of the project, which from now on is publicly available on our github.
When designing the game, our main goal was to prepare a fun entertainment for programmers, as well as to do something interesting as a part of the work in our company. So far, we had not had any competences in creating games, which is why it stroke us a significant challenge. In the first place, we focused on what this game really was. After coming up with the initial plan, we stepped up to the plate.
As a part of the work on the game, we decided to take a hackathon and split into groups performing specific tasks. With such an 8-hour work division, we were able to realize the appearance of opponents in the game, the entire layout, and the foundation of both tasks and APIs of the entire system. During the next stage, we gathered for 4-hour meetings once a month due to which we managed to finish the game in 3 meetings.
It was our first experiment in this field. These were times when people believed in CoffeScript success. Using of TypeScript required introduction of a typescript-rails gem. Unfortunately, this was not the final, as typescript, being statically typed language, also required this from the libraries attached by default to rails.
In 2019, SPA applications are managed by using the magnificent React or Vue libraries. However, in 2015, we did it in a different way. The previously mentioned typescript was helpful in the implementation of the game, while jQuery revoked all the work related to the xml http request. Now we can use fetch, whilst back in those days `$ .ajax` was all that was needed for the job. Take a look at our client api!
If it was api then you had to solve the authentication problem somehow, didn’t you? Well, that’s right. But in that case, we went after (is it possible to write here – we used the band?!) the band and in the rails session we created cookie_key and afterwards saved it in the database. Hence we knew that everything was more than fine.
The game status was stored in the database and information about how many users had points were coming from the database (is it the very same database? Can we just change it by a pronoun?). ACID always comes in handy when there is no caching on the system side;)
In case of the spa, it is the best without reloading the page. We have solved it classically and the html anchor was the best solution without expanding unnecessary dependencies. Because who would use turbolinks?
If we design a game, it must be released only with great graphics and animations. Back then we spent many hours wondering how to meet those demands in our application. On one hand, the canvas can do miracles, on the other, in a clean html is much easier to catch up with and everyone knows it. After a painstaking search for the best solution, we figured out that the combination of these two solutions is svg. It allows you to easily present graphics in a vector, it is written in the markup language and, what is the most important, it can be modified on the fly. Importantly, there is a library for svg files that works similarly to jQuery and allows operations on the image in a unified manner. This is: http://snapsvg.io, we have very nice memories of that particular solution usage.
An example of how we used snap.svg you can find below:
The haml file itself with the graphic skeleton:
As you can see, it’s almost like a normal DOM tree and a regular rails app!
Well, finally we had API, Graphics, SPA. But what about the implementation of solutions sent by the users?
The first thing that comes to mind is the eval method, but we are not crazy;) Back in 2016, the docker was on the rise, so it felt like a natural choice. The containers themselves did not guarantee complete isolation and protection, which is why we used a ready solution in the Ruby called https://github.com/vaharoni/trusted-sandbox. It allowed to better protect the code before leaving the sandbox and in a standardized manner configure the operating system requirements. It was very important to properly limit the code execution time, the memory needed to operate and the CPU cycles. Our configuration is available below
Of course, the same trusted sandbox did not guarantee anything, which is why we came up with a special website to run the code.
Each of the tasks had its own test case, which allowed us to verify the correctness of the implemented solution. This was done by injecting the user code into the test case so that everything was run in isolation.
Of course, this action cost quite a lot of time and, while collecting the responses, we could not afford to run the sandbox, so we only saved the code in the database, creating a submission and then, using long pooling, we asked the endpoint to obtain the code status. This allowed us to relieve the application server and verify the data appropriately. Of course, we also had to protect ourselves against “crashing the script” and therefore we limited the number of server queries using the ttl variable, which can be seen below.
Until September 2011, the game statistics were as follows:
– numbers of sessions: 1945
– sent tasks: 4476
– sent correct answers: 1624
– finished the game: 31
However, detailed data on specific levels look like this:
As you can see, the biggest stairs started in task # 2 because it was no longer an ordinary hello world example.
At Codest, we read a lot. And we’d like to share our top picks with you! Here’s what caught our attention this week.
Author: Lazarus Lazaridis
We run a lot of our workloads through Docker, both in development and production. However dockerizing a fresh new app comes with its own pitfalls and challenges, and it’s always good to have an up-to-date guide laying around. Here’s a handy fresh one.
Author: Terence Lee and Joe Kutner at Heroku
Just in case you’re pressed for time and absolutely cannot spare a while to dockerize your own app, Heroku is releasing their tools for seamlessly moving code into Docker images. It’s an interesting read about a cool piece of tooling.
Author: Oz Nova
Here’s an oldie but a goodie, which started a few interesting discussions in the team. This argument for doing things as simply as possible (but not simpler) is still well worth the read – and a reminder that we don’t have to use tools just because they’re cool.
If you’re using Netlify’s excellent services, you probably know that it’s sometimes hard to figure out what effect your changes will have in production. Ache no more, for Netlify has released a tool to duplicate their platform’s innards locally.
Bonus! Did you know PostgreSQL has five levels of DEBUG logging? We were surprised!
The EU-Startups Summit 2019, the largest start-up conference in Europe is coming! This year it will take place on 2 and 3 May in Barcelona. It is about to gather over 1,200 participants (startups, enthusiasts, business angels, Venture Capital and the largest media) from all over Europe. It’s just worth being there.
The conference is organized by EU-Startups.com, which is the leading online publication that focuses on startups in Europe. The website has been operating on the market since 2010 and is a great source of knowledge for startups and entrepreneurs. Taking into account the dynamic development of startup entrepreneurship in Europe, it was decided to organize the largest meeting in Europe, that associates the most dynamically developing startups, corporations, business angels and Venture Capital. The event will also present companies that serve as an example of the best ones Europe. The event will be promoted around the world thanks to the presence of the largest industry media.
EU-Startups Summit 2019 in Barcelona is a great opportunity for participants to exchange experiences, acquire both new knowledge and inspiration and build a network of contacts. The organizers provide plenty of workshops and meetings. There will be a panel discussion with the best European accelerators – Techstars, APX, Wayra, Rockstart, Startup Wise Guys and Next Big Thing.
A kind of competition will be also hold there. 15 of the hottest startups at an early stage of development will take part in it. Startups will have to present their business ideas to the jury panel within a 3-minute presentation. The winner will receive a prize package with a total value of 75,000 Euro. The following companies will join the competition – Tradler, SplittyPay, Uhura, mietwise, Percept Imagery, Farmdok, Inga, Anitfragile, Polaroo, Neuroflux, Cohosting, TeiaCare, Deliverart, Flowlity and Ziticity.
If you run your own startup, on behalf of the organizers we would like to invite you to participate in this conference. You will have a real chance to get to know investment companies, Venture Capital investors, business angels and many interesting accelerators. Among them are, among others Crowdcube, Funderbeam, Startupxplore. This is a great opportunity to establish potential cooperations.
The conference will take place in the Hesperia Tower Hotel. This is the sixth edition of the prestigious EU-Startups Summit, which promises to be really interesting. The Codest team is also going to take part in this event, so if any of you will be there – just let me know. Certainly, we will find a moment to talk and drink coffee.
Here you will find a presentation of a film, promoting the event prepared by the organizers.
A few days ago the second quarter of 2019 started and now there is a good opportunity to plan your participation in some of the industry conferences. Mind you, there is a lot to choose from. There are many interesting events around the world addressed to both technology leaders and IT managers.
The variety of conferences to choose from is quite large. Not to mention that all of them are pretty much popular due to their long tradition. People looking for a bit more intimate events will also find something to their liking. We have analyzed the conferences in the second quarter and selected a few of the most interesting ones.
A two-day meeting for software leaders, entrepreneurs, decision makers, designers and all those who are responsible for business development and scaling. The conference has a very interesting formula: its participants exchange knowledge, talk about interesting cases from personal experience and analyze selected situations. Its main point is not to discuss programming but to talk about all the practices that help scaling a business. Participation in Business of Software Conference Europe is also a great place to gain valuable contacts.
Date: 11th – 12th April 2019
Location: Churchill College, University of Cambridge, UK
This event is aimed at triggering a discussion among tech leaders about key trends in low-code application development. It’s a great place to get acquainted with programming novelties – for example, learn about micro-services and smart apps. Mendix also offers practical workshops and certified training for programmers.
Date: 16th – 17th April 2019
Location: Rotterdam, Netherlands
Concentrating on leadership qualities and shaping a technology leader’s profile to effectively cooperate and acquire customers. This topic will be the crucial point of the New York meeting of tech leaders’ from around the world.
Date: 18th April 2019
Location: New York, US
Currently, analytics is one of the most important sources when it comes to obtaining the necessary information – for example, about potential clients and their behaviors. Everyday work with complex databases forces us to use this vast knowledge and draw effective conclusions. Speakers of the event include Reshma Saujani (Founder and CEO of Girls who code) and an author, Michio Kaku (Theoretical Physicist, Bestselling author), Jim Goodnight (Chief Executive Officer, SAS) and Oliver Schabenberger (Executive Vice President, COO and CTO, SAS).
Date: 28th April – 1st May
Location: Dallas, US
A conference on software development. Each year, it gathers the most recognized programmers and speakers in the field of programming. During this event, the latest technologies and current trends and practices related to software development are discussed. What is more important, the conference does not focus on any commercial language, therefore it is a great source of knowledge and inspiration for all people involved in technology and programming.
Date: 16th May 2019
Location: Vilnius, Lithuania
A meeting of the technology industry leaders from Europe in London, a place known to be the capital of European entrepreneurship. During this event, the latest technologies and current trends will be presented as well as less formal meetings will be thrown for the participants, allowing to exchange experiences and gain valuable contacts.
Date: 10th – 16th June 2019
Location: London, UK
One of the most well-known conferences in the industry, where thousands of tech leaders and IT specialists participate every year. In June one of them will be held in San Diego. If you want to expand your horizons, discover new and non-standard solutions, learn and get inspiration, consider taking part in this event.
Date: 9th– 13th June 2019
Location: San Diego, US
Released quite recently, Ruby 2.6 brings a bunch of conveniences that may be worth taking a glimpse of. What is new? Let’s give it a shot!
Ruby 2.6 introduces endless ranges, which makes expressions like:
Ruby 2.6 provides new methods and aliases for Array class. I.e:
Hash#merge and Hash#merge! accept now multiple arguments. No more code like: hash1.merge(hash2).merge(hash3)!
Ruby 2.6 provides method Kernel#then, which is an alias to Kernel#yield_self, allowing us to chain operations into pipelines and making the code more readable.
Ruby 2.6 provides Enumerable#to_h method which accepts a block and maps keys to values!
Let’s remind shortly how we had to deal with creating a hash out of array before Ruby 2.6:
From now on, it’s possible to do this simply like this:
How cool is that!
Since Ruby 2.6 Proc#>> and Proc#<< methods were added, allowing us to combine two functions. Let’s look at this:
With the #>> operation, the number gets into exponentiation function first and then minus_two is performed on the result of the first function call. Although it seems useful and gives us a bit of magic, that we all love Ruby for, some say that code written like this becomes just an unreadable mess.
These are, in my opinion, the most interesting conveniences which Ruby 2.6 provides us with. I highly recommend taking a glimpse of official changelog too.
Have you ever wondered how to prepare a great concept redesign? We can help you with this. In this article, we will give an example of a redesign creating process. We will use our case study from Yellow Pages and present the stages that our UI/UX designers have come through by preparing the redesign of Yellow Pages.
Here you will find information about the various stages that we took into account during the preparation of a project. You will learn, what to remember and what to pay attention to. You will find out how a new redesign concept of Yellow Pages was created. The final effect you can check out here, but we are starting from the beginning. Ok, so let’s go with us on the whole stages.
To perform an effective redesign, first of all, you should know a potential user’s profile. Understanding their needs, behaviors or tastes is the key to redesign in accordance with the User’s Experience. Therefore, in the case of the Yellow Pages project, we started our work with deep research and definition of the profile of people visiting this website.
A great solution for any redesign is to use available statistical data, which best reflects users’ behavior and are an answer to all bothering questions. Such as, for example, why users leave the site and when they usually decide to act so. This is one of the examples of information that is the basis for making changes to the UX designer.
In this case, we did not have any access to the statistical data, which is why our analysis was based on conducting research and specification of all imperfections that we saw in the current design of Yellow Pages. Our team of UX designers reflected the potential path that a user overcomes using the functionality of the website. We also analyzed the difficulties that this user must face while on the site.
If you know UX, that’s great. Now it is the right time to prepare mockups. However, if you have not had any contact with UX – check the basic determinants of a good project. What is important is that it can be responsive and scalable.
If you have already passed this stage, you can go on to create mockups. Our team of UX designers began designing mockups that aimed to build an information architecture and to develop a comprehensive design outline. We began the work with the home page, determining the elements and structure of the view, which in a maximum way coincided with the information collected from the first stage. In the process of creating the mock-ups, we also included the ordering and extension of the interface, as well as the specification of the categories. After developing the outline of the page, the model was redrawn in Adobe XD.
The mock-up model developed by the UX team was passed to the team of UI designers who started work on graphic elements. They filled the model with a new design, and their most important tasks included:
– developing a new style,
– selection of graphics and other graphic elements,
– choosing color palettes (you can use this tool),
– implementation of a visual hierarchy,
– UI prototyping,
– cooperation with the UX team of designers.
The next step is to prepare the visualization. It requires the selection of a hierarchy, layout or colour scheme. The aesthetic presentation of the project visualization allows mock-up. There is a lot of ways to prepare mockup. You can do it yourself with the help of the program or use the ready mockups, which are available on the web.
This is how the Yellow Pages redesign project is presented in the mockup.
Finally, we would like to highlight a few other elements that should be taken into account in the process of creating the project, which we have not mentioned before. When starting work, one must remember that the final project should be developed in accordance with good SEO practices (it will increase the position of the page in the search engine), and be adapted to mobile devices. It is also worth leaving the possibility of a possible expansion of the project in the future.
If you are thinking about doing a redesign or are just doing it, remember that the key to success is to become a potential user. You need to understand and predict their actions. The personalized message is important. Also, do not forget about all the elements that will allow you to increase the conversion on the website later. And finally, another good piece of advice – act in stages. In this way, your work will be more effective and organized.
That’s all. We wish you luck. We hope our tips will help you create a great project. If you have any additional questions, please, get in touch with us and we will try to help you!
Just like the other Scandinavian countries, Finland with Helsinki as its capital city, is developing quite well in the field of entrepreneurship. In this country, one can find a lot of interesting companies and startups that have achieved international success. Some of them can already boast of millions of revenues.
We have analyzed the market in Finland and prepared a list of top growing startups and most interesting global companies. Their activities are varied. These are marketplaces,e-commerces and companies from the FinTech and AdTech industries. Each of them can boast of its innovative product. We have identified 10 most attractive and noteworthy.
It is an automation platform for effective online advertising management. With the help of the Smartly tool, you can achieve higher ad revenues in the CPA (Cost per Action) system. Advertising in Smartly is simple and intuitive. Currently, the tool is used by over 600 brands from around the world, including eBay, Uber, TechStyle and Skyscanner. Smartly as a startup began its operations in 2013. Annually, the platform registers transactions for over 1 billion dollars. From the available sources, we can also learn that Smartly has already got over 300 employees.
How to combine artificial intelligence with gamification and also keep it easy – to use shopping features. Blidz offers an innovative solution that helps a customer get some unique experiences when shopping online. What’s more, the Blidz platform, using artificial intelligence, helps its users find the products they are looking for, offering available deals and discounts. The company was founded in 2017 and the originators ensure that online shopping has never been so easy and enjoyable.
Boost your bottom line with Feedbackly. What is it all about? The tool allows you to collect valuable information about customers – their behavior, opinions, trends – and contribute all the collected data to the increase of sales efficiency. The big advantage is that Feedbackly is integrated with other popular tools like WordPress, Google Tag Manager, Shopify or Magneto. Over 3,000 brands have benefited so far from the Feedbackly platform. Jack & Jones, Kiasma and Flying Tiger Copenhagen are among them.
Kesko is one of the leading listed companies in Finland. The company deals with food, technical, construction and automotive trade. The entire network brings together over 1,800 sales points in such countries as Finland, Sweden, Norway, Estonia, Latvia, Lithuania and Belarus. In 2017, the company recorded a total sales value of approximately 13 billion Euro.
The Venuu platform is very often called ‘Airbnb for Event Spaces’. With the help of this tool, you can easily find a place to rent for various occasions – events, weddings, business meetings and much more. Venuu is growing very dynamically and the service is already available in many countries. Its clients include ABB, Accenture, H&M, Microsoft and Nordea.
A tool that allows you to collect more information about potential customers, who visit your website. This is a perfect solution for employees involved in sales departments. How does it work in practice? All you need to do is set up a Leadfeeder with Google Analytics, and then with the help of this tool, you will find out what companies have visited your website and how they came to it. In this way, sellers and marketers can increase their knowledge of campaigns and sales campaigns. Another thing to mention is the fact that Leadfeeder is easily connected with other tools, such as Slack.
A company from the fintech industry. Lago Kapital provides listed companies. Securities loans are available to institutional investors, whereas securities lending is offered to all investors. The company has absolute independence from banking institutions. Lago Kapital holds a license from the Financial Supervisory Authority FIN-FSA.
It is a music platform for those who want to learn how to play and create music. It’s a perfect tool for developing your musical skills, which is used by millions of people around the world. At Yousician you will find thousands of songs, exercises and available lessons developed by certified trainers. The application also provides many other useful functionalities, such as a possibility to receive real-time feedback and instructions from other users.
One of the largest companies in Europe operating in the AdTech industry, dealing with the management of advertising on the Internet. The platform helps publishers manage inventory and monetize it effectively. Kiosked focuses on solving problems related to the visibility, relevance and performance of advertisements.
It is an application that allows users both sale and purchases tailored clothing. It connects people with the same size and style, helping them throughout the entire shopping process. Zadaa includes over 600,000 unique clothing, shoes and other accessories. The application is gaining more and more popularity in such countries as Finland, Denmark and Germany.
– Kaiku Health.