Have you ever been working on a Rails application, needed to use a configuration value within your code and then couldn’t remember whether it’s a setting, secret, credential, or environment variable? If you haven’t, this won’t be interesting, but if you’re like me, it might be worth reading on.
Lots of solid improvements to Rails coming down the pipe. While there are some larger improvements, the little improvements help make several common patterns less tedious. The authenticate_by method provides protection against common timing attacks. The generates_token_for declaration streamlines the process of managing single-use tokens. And has_secure_password can now automatically verify the current password when performing updates by providing a password_challenge attribute on updates.
We recently finished up a moderately-sized improvement to Flipper that likely would never have seen the light of day if we couldn’t have easily thrown it behind a feature flag. Being able to test drive it in production and work on iteratively helped ensure it kept moving along even though it was on the back burner in terms of priorities.
Wrote up some details about how we used feature flags to add the Free Cloud option (a large, far-reaching change) to Flipper over the course of about 20 pull requests and releases.
…feature flags are about letting teams separate the process of releasing new features from the process of shipping code. When shipping code, frequent small changes reduce risk dramatically, but for features, we often need a large amount of code to change all at once. With these two elements at odds, de-coupling one from the other enables better workflows at every step of the process.
It helped maintain steady momentum at at time when none of us were working full-time on Flipper. We were able to catch smaller issues earlier, and once it was finished, we even flipped the switch on a Friday afternoon without any major problems.
I’ve been working part time with John, Brandon, and Steve on Flipper Cloud the last few months, and then we decided to make it a full-time thing. We’ve been working on a ton of stuff to make feature flags more powerful and less painless to manage, and cutting 1.0 and offering a free plan for Cloud is just the first step.
A good overview of autoloading in both Ruby and Rails that goes into just enough detail to help it all make sense without getting bogged down in the deeper inner workings. It’s definitely one of those features that easy to take for granted until trying to build something in a language or framework that doesn’t offer autoloading.
If you’ve ever wondered about the differences between Classic autoloading and Zeitwerk, the second part does a great job explaining the differences.
I built an automated tool to inspect and document all of the available methods in a set of Ruby classes and modules in order to answer questions and provide data and insights that would help explore and recognize patterns and concepts with Rails Generators.
I created a custom reporter for Minitest to try and proactively identify the underlying source of a problem by inspecting and classifying each failure and customizing the information displayed based on the context and type of failure. It also presents a heat map summary to help more quickly identify individual areas that are likely to be causing the other errors.
The other day, I signed up for Hey without poking around or even thinking about it. I just put in my credit card and set up forwarding for my personal email. After the fact, I thought about how unusual that was and started thinking about what it takes…
I keep my feet squarely planted in two worlds when it comes to development. One of those is all things front-end, and the other is Ruby (and Rails). With Ruby/Rails, they’re frequently maligned as a not-serious programming language/framework pair…
When you spend eight straight years designing, developing, and supporting a product by yourself, you gain perspective. You truly feel the consequences of your decisions as they ripple through the years. When you work on a team and are able to…
When it comes to sharing ideas that involve visual elements, source code, and unifying concepts that span disciplines, the friction to include different types of media and information makes technical writing rather tedious, and streamlining that process a bit has helped make it more enjoyable to write.
The full stack for a web application can be rather overwhelming, but it’s not quite as bad as you might think. If you look at this list knowing only a small portion of the items, it can be incredibly intimidating. Really, though, it’s an incremental…
A few weeks ago, we released a significant update to Sifter. (Rails 3, Ruby 1.9, and a bevy of associated gems and other components in case you’re curious about such things.) Since then, there have only been a few fleeting moments of peace and quiet. My…