Revelry engineering blog header image lightbulb twil this week i learned. Chalkboard style

#RevTWIL: A Week’s Worth of Slack Channel Sharing

At Revelry, we believe in sharing and learning from one another (beliefs that are rooted in our Core Values). Among the many things we do to encourage internal knowledge exchange is to have a different team member present at each week’s Engineering Meeting. These presentations don’t have to be lengthy, formal, or complicated; in fact, many are brief, but also powerful in that they teach our Revelers something new, inspire conversation, and encourage collaboration.

In the spirit of sharing, we share our This Week I Learned presentations (aka RevTWILs”) here. We hope you find them helpful.

THIS WEEK: We offer an assortment of shared learnings from our engineering team.

ReDos, aka regular expression denial of service, is possible when you overload a regex expression with an input that takes a really long time to evaluate, which can cause an app to hang while it evaluates it.

If you find a bug in an open source library, like, I don’t know, Elixir’s URI module, and you want to be the one to fix it, you better be quick with the PR otherwise someone will scoop it out from under you.

If you want to create a Zap and mention specific people, you have to use <@Slack Member ID>, which can be found by going to a user’s profile > 3 dots > Copy Member ID.

chart.googleapis has been deprecated, but I found an alternative: =”https://quickchart.io/qr?text=“&ENCODEURL(A2)

Heroku’s postgres service has a “diagnose” tab that points out slow queries.

Something I realized I use every day: If you have a lot of stuff on your Github notifications page, and it takes too long to clear it out, you can use the “Refined Github” extension. One of the things it can do is add “Select By” filters to your notifications list so you can, eg: select all merged items and dismiss them all at once.

Rollbar supports custom fingerprinting rules to control whether occurrences are grouped under the same error item. https://docs.rollbar.com/docs/custom-grouping

This is going to be an obvious one for those old-school folks who regularly use psql, but… In psql, you can run \x on to turn on “Expanded display,” which formats the output of your queries to be way more readable. 

If you’re working with Ecto.UUIDs directly in an iex shell, don’t be fooled into thinking they are “just strings” when writing queries. You must first Ecto.UUID.cast(“the-id”) in order to query against it.

Want to learn more about Revelry and our collaborative approach to building custom software? Connect with our team.

We're building an AI-powered Product Operations Cloud, leveraging AI in almost every aspect of the software delivery lifecycle. Want to test drive it with us? Join the ProdOps party at ProdOps.ai.