Systems | Development | Analytics | API | Testing

June 2020

Troubleshooting Encoding Errors in Ruby

Text encoding is fundamental to programming. Web sites, user data, and even the code we write are all text. When encoding breaks, it can feel like the floor is falling out from under you. You're cast into a dimension of bitmasks and codepoints. Logs and backtraces are useless. You consider trading your text editor for a hex editor. But there's hope! In this article, Jose Manuél will show us how encoding errors happen, how they're expressed in Ruby, and how to troubleshoot them.

Evaluating Go's Package Management and Module Systems

When you're evaluating a language for your next project, few things are more important than available third-party libraries and the package manager that ties them together. While early versions of Go lacked a package manager, they've made up for lost time. In this article, Ayooluwa Isaiah introduces us to go's module ecosystem to help us decide if go is "a go" for our next project.

Taming Legacy Code With Characterization Tests

Developers make fun of legacy systems because we're scared of them. We're afraid that the tiniest change will cause the app to break in unexpected ways. We're afraid we won't realize it until a customer complains. One way to combat this fear is through testing. In this article, José Manuel shows us how to retrofit legacy systems with acceptance test suites so we can maintain them with less fear and more confidence.

WTF is a Convolutional Neural Network?

If you are a software engineer, there's a good chance that deep learning will inevitably become part of your job in the future. Even if you're not building the models that directly use CNNs, you might have to collaborate with data scientists or help business partners better understand what is going on under the hood. In this article, Julie Kent dives into the world of convolutional neural networks and explains it all in a not-so-scary way.