RSSAmplifier

Blog

Guillaume's Horrible Code-Along Blog

Sharing code ideas, successes, and defeats.

gmalette.devRSS feed ↗12 posts

Latest posts

#guillaume-rant-palace

I logged into Twitter today. I wanted to download the archive of my data. In doing so, I couldn’t help but be taken back to the days when I was an active user, from Jan 2011 to October 2022. I didn’t tweet much, but over the years, I had come to use Twitter as an outlet for my frustrations, cynicism, takes about working in–or generally interacting with–tech. Where this blog was the long-form,…

GraphQL ❤️ Sorbet and Unit Tests

For the past year, my team has been working on a project that exposes a GraphQL API, and, since we’ve been doing things quite differently than the rest of the company, I figured some of our ideas might be worth sharing. We’ve been using the graphql-ruby gem, and even though it doesn’t lend itself well to unit testing, we’ve insisted on writing unit tests. What’s more,…

Type Variance Explained To a Ruby Developer

A few months ago, I found myself trying to explain type variance to a coworker whose experience is mainly Ruby. Dynamically typed languages such as Ruby don’t ask the developers to specify the type variance. I found that while they develop an instinct of what usages are acceptable and which aren’t, these developers don’t codify it in the same way developers in statically typed…

Affordance for Errors, part 3

In this third and final post, we work through a practical example of API design, to see how to remove the affordance for errors.

Affordance for Errors, part 2

In this second post of three, I show how other APIs and languages have avoided some of the problems shown in the first post.

Affordance for Errors, part 1

In this first posts of three, I highlight a few examples of affordance for errors in common APIs.

Refactoring Common ActiveSupport::Concern Patterns

Following my Rant on ActiveSupport::Concern, I've been asked how to refactor the code to make it stop using it, or write new code without it. I thought I'd share the patterns that have worked for me so far.

Moving Away from Medium

When I started writing, I picked Medium. I didn’t want to setup a blog, have choose a template or style, or figure out how to use an analytics platform. I just wanted to write. When writing my Revoking the (Parentheses) Privilege post, it became apparent that Medium failed me. It has no support for syntax highlighting, requiring me to use screenshots from Carbon . I’m considering a…

The Ruby Object Model

A post in which I try to explain Ruby's Object Model: Objects, Classes, Singleton Classes, Modules...

Revoking the (Parentheses) Privilege

Not using parentheses on method calls (in Ruby) is unsafe and unpredictable. Use parentheses.

Short Rant about ActiveSupport::Concern

Most usages of ActiveSupport::Concern are unnecessary. Here's why.

Mistaking Authentication for Identification

Earlier this year, I accidentally uncovered a flaw in many providers using git shell, because they mistake Authentication for Identification.