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.

  • You can install single dependencies in an iex shell by using Mix.install [:dependency]. Very handy for quickly experimenting with a library without running your app’s server.
  • The Arc Browser – given an hour or two of your time up front to organize it – is the single greatest browser experience I’ve ever had.
  • A <section> tag is fairly meaningless without a header and a corresponding aria-labeledby attribute because screen readers will not get quick access to the region otherwise. For Example, this doesn’t help accessibility at all:
html *
*<section> *
*<h1>Phone Numbers</h1> *
*<!-- list of numbers --> *
*</section> *
*

But if we do it like this, it will be accessible to screen readers:

html *
*<section aria-labeledby="phone-numbers"> *
*<h1 id="phone-numbers">Phone Numbers</h1> *
*<!-- list of numbers --> *
*</section> *
*
  • If you want form fields to never autocomplete, there’s an attribute for that: autocomplete=”new-password”. Another option is: input autocomplete=”off”, BUT if autocomplete was not set to “on” for this field before you provided fields with values, browsers will still autocomplete these fields.
  • Yarn audit is a powerful tool that goes through all your dependencies and sub-dependencies and updates them. With great power comes great responsibility, because this action is difficult to undo.
  • SMS messages use something called GSM-7 character encoding, which means 160 characters max. Because of this limit, long SMS messages are broken up into what are called segments. The tab character is not part of this encoding standard and instead uses UCS-2 encoding. Since UCS-2 encoded characters have a fixed-length of 2 bytes, a message encoded in UCS-2 has a maximum of 70 characters. Sooooo, if you accidentally include the tab character in your SMS message, you may end up with twice as many segments than you expected!

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.