Hacky Friday Stuff #14.02.2020 served with ❤️ 
Tags: ruby, rails, fullstack, fridaystuff
Published: 2020-02-14 13:55:23

*Links about web development, product engineering, tools and services from all over the internet.*

### Insights

[The 2020 State of Remote Work](https://lp.buffer.com/state-of-remote-work-2020)
Top insights and data from one of the largest remote work reports.

[2020 HackerRank Developer Skills Report](https://research.hackerrank.com/developer-skills/2020)
Insights based on 116,648 developers.

### Announcements

[Supercharge your command line experience: GitHub CLI is now in beta](https://github.blog/2020-02-12-supercharge-your-command-line-experience-github-cli-is-now-in-beta/)
Millions of developers rely on GitHub to make building software more fun and collaborative, and `gh` brings the GitHub experience right to your terminal.
You can install GitHub CLI today on [macOS, Windows, and Linux](https://github.com/cli/cli#installation-and-upgrading), and there’s more to come as we iterate on your feedback from the beta.

### Articles and tutorials

[ROM + Dry Showcase: Part 1](https://ryanbigg.com/2020/02/rom-and-dry-showcase-part-1)
The `rom-rb` and `dry-rb` sets of gems have come out in the last couple of years. These gems allow an alternative take on building a Ruby application, separate from Rails or Sinatra, or anything else like that.
In this series of blog posts, you will see how to build a simple application that called "Bix" using some of these gems. By the end of this series, the application will:
* Part 1 - Interact with a database using ROM
* Part 2 - Have validation and transaction classes
* Part 3 - Test our application with RSpec
* Part 4 - Have a router and a series of actions

[Performant front-end architecture](https://www.debugbear.com/blog/performant-front-end-architecture)
This post describes some techniques to make front-end apps load faster and provide a good user experience.
We'll look at the overall architecture of the front-end. How can you load essential resources first, and maximize the probability that the resources are already in the cache?

[Protecting Your GraphQL API From Security Vulnerabilities](https://medium.com/swlh/protecting-your-graphql-api-from-security-vulnerabilities-e8afdfa6fbe4)
GraphQL is quickly becoming the tool of choice for developers that need to build an API for their client application. But like all new technologies, GraphQL comes with its own threat landscape. Whether you’re building a side project or a large-scale enterprise application, you’ll need to make sure you’re protecting yourself against these GraphQL security vulnerabilities.

[Deploying Rails 6 application with Dokku](https://kukicola.io/posts/deploying-rails-6-application-with-dokku)
Heroku, AWS, Google Cloud are great services for hosting Rails application but they are expensive. If you are developing a small app, kicking off a startup or just playing with Rails you can use cheaper solutions - cloud hosting, like DigitalOcean or Upcloud. The problem is the setup - you need to install dependencies on your own. Then deploy your application manually or using, for example, Capistrano, which also requires a lot of setup. What if we had self-hosted Heroku?

[What kinds of Rails tests I write and what kinds I don’t](https://www.codewithjason.com/kinds-rails-tests-write-kinds-dont/)
There are a lot of different kinds of tests a developer could possibly write. In RSpec there are model specs, feature specs, view specs, helper specs, routing specs, controller specs, and request specs. Do you need to write all these different types of tests? If not, which ones should you skip?

[Dockerizing a Ruby on Rails Application](https://semaphoreci.com/community/tutorials/dockerizing-a-ruby-on-rails-application)
After reading this article:
* You will have a basic idea of what Docker is.
* How Docker can help you to streamline development.
* How you can use Continuous Integration and Delivery (CI/CD) to build and test your Ruby projects.

### Tools and libraries

[ReDoc](https://github.com/Redocly/redoc)
OpenAPI/Swagger-generated API Reference Documentation.

[Watir](http://watir.com/)
An open-source Ruby library for automating tests. Watir interacts with a browser the same way people do: clicking links, filling out forms and validating text.

[Presto](https://prestodb.io/)
Presto is an open-source distributed SQL query engine for running interactive analytic queries against data sources of all sizes ranging from gigabytes to petabytes.
Presto was designed and written from the ground up for interactive analytics and approaches the speed of commercial data warehouses while scaling to the size of organizations like Facebook.

### Podcasts

[Full Stack Radio | 134: Mark Dalgleish - You Should Be Using Layout Components](http://www.fullstackradio.com/134)
In this episode, Adam talks to Mark Dalgleish about common mistakes people make in their approach to constructing layouts, and how dedicated layout components can make your component system much easier to work with.

### Videos

[Ember.js: The Documentary](https://www.youtube.com/watch?v=Cvz-9ccflKQ&feature=youtu.be)
Starring Yehuda Katz and Tom Dale  (co-creators of Ember.js), as well as many other big names from the Ember community, "Ember.js: The Documentary" explores why and how #Emberjs came to be, the pioneers behind its creation and the life-altering decisions that go into making opensource software.