Hacky Friday Stuff #27.12.2019
Tags: ruby, rails, fullstack, fridaystuff
Published: 2019-12-27 17:00:28

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

[Ruby 2.7.0 Released](https://www.ruby-lang.org/en/news/2019/12/25/ruby-2-7-0-released/)
It introduces a number of new features and performance improvements, most notably:
* Pattern Matching
* REPL improvement
* Compaction GC
* Separation of positional and keyword arguments

[Ruby Concurrency Progress Report](https://www.codeotaku.com/journal/2019-12/ruby-concurrency-progress-report/index)
This progress report is a combination of discussions of the concurrency model for Ruby 3 with Matz and Koichi.

[Ruby, Where do We Go Now?](https://metaredux.com/posts/2019/12/06/ruby-where-do-we-go-now.html)
Ruby 2.7 has become infamous at this point for several highly controversial changes that were either quickly revised or removed. A classic tell-tale of good project management and a clear vision for the future, right?
Let’s examine a few of those ill-fated changes in no particular order…

[JIT and Ruby's MJIT](http://engineering.appfolio.com/appfolio-engineering/2019/7/18/jit-and-rubys-mjit)
If you already know lots about JIT in general and Ruby’s MJIT in particular… you may not learn much new in this post. But in case you wonder “what is JIT?” or “what is MJIT?” or “what’s different about Ruby’s JIT?” or perhaps “why in the world did they decide to do THAT?”…

[Octane is here!](https://blog.emberjs.com/2019/12/20/octane-is-here.html)
Ember 3.15 is Octane! Curious what Octane means for web development? This blog post will get you oriented.

### Articles and tutorials

[The World Follows Power Laws: Why Premature Optimization is Bad](https://www.speedshop.co/2019/12/22/why-premature-optimization-is-bad.html)
Programmers vaguely realize that 'premature optimization is bad'. But what is premature optimization? I'll argue that any optimization that does not come from observed measurement, usually in production, is premature, and that this fact stems from natural facts about our world. By applying an empirical mindset to performance, we can avoid this trap.

[The Curious Case of the Table-Locking UPDATE Query](https://blog.heroku.com/curious-case-table-locking-update-query)
The post about debugging a problem with a query at internal-facing service at Heroku that does metadata processing. It was discovered that the system was getting bogged down to the point where no jobs were being executed at all. After hours of debugging, I found the problem was an UPDATE on a single row on a single table was causing the entire table to lock, which caused a lock queue and ground the whole process to a halt. 

[Know Your Database Types](https://blog.heroku.com/know-your-database-types)
There can be a number of reasons why your application performs poorly, but perhaps none are as challenging as issues stemming from your database. If your database's response times tend to be high, it can cause a strain on your network and your users’ patience. The usual culprit for a slow database is an inefficient query being executed somewhere in your application logic.

[Hacking GitHub with Unicode](https://eng.getwisdom.io/hacking-github-with-unicode-dotless-i/)
From combining emoji marks and astral planes, Unicode is under appreciated and poorly understood. The importance of understanding Unicode extends beyond localization and diversity. Failing to understand Unicode may lead to vulnerabilities in your code.

[Behind the scenes: GitHub security alerts](https://github.blog/2019-12-11-behind-the-scenes-github-vulnerability-alerts/)
If you have code on GitHub, chances are that you’ve had a security vulnerability alert at some point. Since the feature launched, GitHub has sent more than 62 million security alerts for vulnerable dependencies.
How does it work?


### Tools and libraries

[Godmin](https://github.com/varvet/godmin)
Admin framework for Rails 4+

[Introducing pg_query: Parse PostgreSQL queries in Ruby](https://pganalyze.com/blog/parse-postgresql-queries-in-ruby)
In this article we'll take a look at the new [pg_query](https://github.com/pganalyze/pg_query) Ruby library.
pg_query is a Ruby library I wrote to help you parse SQL queries and work with the PostgreSQL parse tree. We use this extension inside [pganalyze](https://pganalyze.com/) to provide contextual information for each query and find columns which might need an index.

[Awesome Go](https://awesome-go.com/)
A curated list of awesome Go frameworks, libraries and software.

### Podcasts

[Ruby Rogues. RR 441: Solidus with Alessandro Desantis](https://devchat.tv/ruby-rogues/rr-441-solidus-with-alessandro-desantis/)
Alessandro Desantis is the director of Nebulab and is currently working on Solidus. After talking a little bit about how Nebulab got started, he describes what Solidus is. Solidus is a free, open source eCommerce platform built in Ruby on Rails that gives you complete control over your store. Three things that set it apart from other eCommerce platforms are that it is governed by a single company and that the focus is on quality and backwards compatibility.

[Ruby Rogues. RR 442: GitLab Commit with Eddie Zaneski, Shamiq Islam and Jasmine James](https://devchat.tv/ruby-rogues/rr-442-creating-a-ci-cd-pipeline-with-eddie-zaneski/)
Live from GitLab Commit 2019, Charles Max Wood is joined by Eddie Zaneski from Digital Ocean to talk about his talk on "Creating a CI/CD Pipeline with GitLab and Kubernetes in 20 minutes", Shamiq Islam from Coinbase to talk about his talk on "Closing the SDLC Loop- Automating Security" and Jasmine James, from Delta Air Lines on her talk " How Delta Became Cloud Native".


### Videos

[Ergonomics Expert Explains How to Set Up Your Desk](https://www.youtube.com/watch?v=F8_ME4VwTiw&feature=youtu.be)
Our desks weren't made for us. They were made for everyone. So ergonomics expert Jon Cinkay from the Hospital for Special Surgery is here to show you how to make your desk and office chair adapt to you and not the other way around.