Gnarly Learnings from December 2022

  • December 30, 2022
  • Ethan Fertsch
  • 3 min read

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.

OWASP Top Ten

It's important to stay sharp when it comes to online security. The Open Web Application Security Project, or OWASP, is a non-profit organization dedicated to keeping the world informed about security threats on the web and how to protect against them. This top ten list, which many of you will be familiar with, is a good place to start.

Modern CSV

Many of the projects we work on involve parsing and generating CSVs. Excel is a powerful piece of software, but is often more than we need. Plus, it's a bit of a hassle always exporting .xlsx to .csv. Modern CSV is an alternative we recently discovered, explicitly made for reading and writing CSV. There is a full version for purchase, but we found we can also get significant mileage with the free version.

ActiveRecord::Store

If you’re like us, you continue to be surprised and delighted by Rails despite decades of combined experience in the industry. There’s always more to explore under the hood, such as ActiveRecord::Store.This article provides a tour of the store (for serialization) and store_accessor (for reading and writing) methods and how they can be used to persist structured data (e.g. JSON or YAML) in relational databases. You aren’t likely to use these on a daily basis but in the event that you need to work with data and/or data structures that are changeable and unknowable, you may be able to dust them off and impress your friends with your awesome obscure Rails knowledge.

Shopify/Job-Iteration

Wouldn’t it be great if we could have more control over our background jobs? To be able to pause and resume jobs, and to have a bookmark that tracks the progress a job has made? Yeah it would be, and the folks at Shopify thought so too. This API has been in use in their production systems since 2017 and is their response to infrastructure-related issues that impact long-running jobs, such as worker restarts and interruptions due to frequent deploys. Neat stuff!

Crystal for Rubyists

In my experience, one of the most helpful tools for learning a new programming language is the ability to make comparisons between what’s familiar and what isn’t. As a Rubyist learning a new language I might ask myself, “How would I write this in Ruby?”. This guide makes it really simple to answer that question for folks who know Ruby and are interested in learning Crystal. And boy howdy, would I love to have one of these for all the languages out there!

JavaScript’s Intl.Segmenter

There are tons of folks all over the world that write code in their native languages. We know that we can use string manipulation functions and regular expressions to split up and manage strings in English, but would we know how to do it if they were expressed in Mandarin? Probably not, but JavaScript’s Intl.Segmenter object can. MDN describes it as "enabl[ing] locale-sensitive text segmentation, enabling you to get meaningful items (graphemes, words or sentences) from a string.", unless you’re developing for Firefox. 😉 This article covers the basics of this object and provides some fun examples using emojis.

Contributors:

Learn more about how The Gnar builds software.

Interested in building with us?