Gnarly Learnings from May 2023

A graduate is with a friend holding a diploma and taking a selfie. There are animated tentacles coming out of the phone.

At The Gnar we are always reading, watching, and listening in order to keep our skills sharp and our perspectives fresh. Here are some of the resources we learned from this month. Automatic Fetch Request Deduping with Next.js NextJS focuses a lot on optimization. So it was no surprise to learn about fetch request deduping.…

Read More

Gnarly News April 2023

A Boston terrier reading a newspaper with cartoonish indicators over the ears that it is listening.

The software development landscape is constantly changing. As a software consultancy, it’s our responsibility to keep our finger on the pulse of the industry. Here are some headlines that caught our attention recently. Rails World: A New Conference in 2023 Conference season is upon us! There have been many announcements as of late about conference…

Read More

Gnarly Learnings from April 2023

A graduate is with a friend holding a diploma and taking a selfie. There are animated tentacles coming out of the phone.

At the Gnar we are always reading, watching, and listening in order to keep our skills sharp and our perspectives fresh. Here are some of the resources we learned from this month. CSS Supports Trigonometry Functions Trig functions in CSS make it easier to rotate objects and let us avoid using magic numbers. For example,…

Read More

Gnarly Learnings from March 2023

A graduate is with a friend holding a diploma and taking a selfie. There are animated tentacles coming out of the phone.

We love reading, watching, and listening in order to keep our skills sharp and our perspectives fresh. Here are some of the resources we learned from this month. compareDocumentPosition Sorting is a common feature requirement for any list UI. It is straightforward enough to write a unit test for a custom sorting function, comparing its…

Read More

Practical State Machinery

A cartoonish stick figure swings from a rope tied to a vending machine.

As abstractions go, finite state machines represent a bit of low hanging fruit when you have real world problems to solve. The jargon can be a little forbidding—MDN leads with “a mathematical abstraction used to design algorithms” and pretty much gets more technical from there—but in reality they represent a simple and practical technique for…

Read More

Metaprogramming in Ruby: Intermediate Level

Computer with a cartoonish stick figure positioning a ladder below a gem

This post is the second in a series focused on the application of Ruby metaprogramming. If you’re just starting to learn about metaprogramming, “Metaprogramming in Ruby: Beginner Level” is a great place to get started. In this article, we’ll cover a practical application of Ruby metaprogramming. If you want to learn even more, stay tuned…

Read More

Gnarly Learnings from February 2023

A graduate is with a friend holding a diploma and taking a selfie. There are animated tentacles coming out of the phone.

We love reading, watching, and listening in order to keep our skills sharp and our perspectives fresh. Here are some of the resources we learned from this month. Improved Absolute URL Detection in React Router Link Component The Link component is an important aspect of React Router’s tooling, but historically we have had to fall…

Read More

Postgres Full Text Search

A hand showing off a cartoonish, large diamond ring.

Why you might not need Elasticsearch This blog post is another in my series “Yeah, Postgres can do that”,  (check out my other posts on enum types, and history tracking). Postgres is a humble workhorse with powerful features waiting to be unlocked. If you’re a web developer and you want to add a search bar…

Read More

Ruby to the Rescue

A cat dressed as an astronaut beside a cartoonish flotation device.

TL;DR Though we frequently use the terms “throw” and “catch” when discussing error handling, we must be careful in Ruby to use the more accurate terms “raise” and “rescue”. “Throw” and “catch” have a significantly different meaning in Ruby. The Problem The other day we were writing an RSpec test and were surprised to find…

Read More