Gnarly Learnings from August
Tags: postgres, ruby, typescript, git
Published: 2021-09-07 02:40:05

We love reading, watching, and listening to constantly update our skills and learn new perspectives. Here are some of the exciting pieces we learned from this month.

## [Confusing Terms in the Git Terminology](https://dev.to/pragativerma18/confusing-terms-in-the-git-terminology-1578)

There are a lot of operations in git that _sound_ or _look_ similar. Learn about some of those commands in this article, along with when to use one or the other.

## [New in Git: switch and restore](https://www.banterly.net/2021/07/31/new-in-git-switch-and-restore)

One of the confusing operations in git is `checkout`. This article explains that command and how git spun off some more specific commands.

## [How Width_Bucket() Works in PostgreSQL](https://database.guide/how-width_bucket-works-in-postgresql/)

Should you find yourself in a position where you're looking to group numbers together into different categories, you may be familiar with using [CASE](https://www.postgresqltutorial.com/postgresql-case/).
Alternatively, you can also use `width_bucket` with Postgres. It can define the size of the buckets for you, or you can tell it the thresholds you'd like to have. This article will walk you through the details on how to use this function.

##[An Introduction to Pattern Matching in Ruby](https://blog.appsignal.com/2021/07/28/introduction-to-pattern-matching-in-ruby.html)

This article provides a good introduction to some of the methods, syntax, and things to be aware of when working with [pattern matching](https://docs.ruby-lang.org/en/3.0.0/doc/syntax/pattern_matching_rdoc.html).

##[An Object-Oriented Example](https://noelrappin.com/blog/2021/07/an-object-oriented-example/)

This article does a great job at describing the journey the author takes in organizing some logic with an intentional eye to being more object-oriented. Though the example is in ruby, the structure and approach applies regardless of language.

## [Control Flow Analysis of Aliased Conditions and Discriminants in TypeScript 4.4](https://devblogs.microsoft.com/typescript/announcing-typescript-4-4-rc/#cfa-aliased-conditions)

Ever wanted to use discriminated unions or other ways to differentiate types, but you didn't want to go through the hassle of using type predicates? Well, starting in TypeScript 4.4, you can code the type guard you want in a way that feels far more ergonomic.

This announcement of TypeScript 4.4 is far more than just this one feature, but it's one I've been looking forward to for a long time.

## [Software Development Cannot Be Automated Because It’s a Creative Process With an Unknown End Goal](https://thehosk.medium.com/software-development-cannot-be-automated-because-its-a-creative-process-with-an-unknown-end-goal-2d4776866808)

Rather than fearing a future where software is written by machines, this post highlights the ways in which it _can't_ be solved by algorithms due to its inherent discovery process.

## [Simple Systems Have Less Downtime](https://www.gkogan.co/blog/simple-systems/)

We may talk about the cost of complexity, and needing to earn or justify it, but what about the **benefit** of simplicity? This article considers that perspective.

## [Project to Product asks more of our software, and more of us](https://jessitron.com/2021/07/28/projects-to-products-kegan/)

How do we view, and own, the work in front of us when we recognize that it's never done? What does that enable and require us to do? This article presents the different mindset, and make up, of a team with a project focus vs. one with a product focus.

## [How to comment Rails migrations](https://tosbourn.com/comment-your-rails-migrations/)

TIL that you can add comments to your database schema in rails through migrations, and that documentation also lives in your database itself.

## Contributors

- [Alex Jarvis](https://github.com/alxjrvs)
- [Jon Yurek](https://github.com/jyurek)
- [Kevin Murphy](https://github.com/kevin-j-m)

_Learn more about how The Gnar [builds software](https://www.thegnar.com/software-development)._