Don’t Make API Calls in Tests

In Programming, Technology by Pete

I recently had a great conversation about application testing strategy and remote API calls. The question we were trying to answer was this: In an application which makes external API call, when should you mock those calls in your test suite, and when should you make live calls in your tests? My take on this issue: always always always mock external1 API calls. Here’s why: This gets more tricky when you own both systems, but I still stand by this as a best practice for that situation as well, for slightly different reasons. ↩

Compiling the Best Possible Code Sample

In Programming, Technology by Pete

Aspiring software engineers are often asked for code samples to demonstrate that they’ve got some clue what they’re doing. This is pretty terrifying and it’s incredibly difficult. When they’re not done well, they don’t provide much in the way of useful information. I’m a lead engineer at a pretty cool software company. I’ve been in a lot of interviews and I’ve read a lot of crappy code samples. I decided to write about what would get me excited about a candidate’s code sample (and, by extension, them). Other people might feel differently. That’s cool; this isn’t a math test. (But I would love to hear those counter-points in the comments below!)

Rails vs. Phoenix

In Uncategorized by Pete

Over the past week I’ve been diving into Elixir and Phoenix. As it is with most languages, there some good and some bad with Elixir. That said, anyone announcing the death of Rails at the hands of Phoenix is probably a bit early. While I didn’t do any benchmarks myself, that path is well worn. It seems fair to say that Elixir is probably faster than Ruby and Phoenix is probably significantly faster than Rails. It’s also likely that Phoenix will handle WebSockets far better than Rails will, even with ActionCable. On top of all of that, Elixir seems to also have a slight edge over Rails in terms of asynchronous jobs, since they can be done directly. For truly heavy jobs, Elixir …

Elixir Getting Started: First Impressions

In Programming, Technology by Pete

I’ve worked through the Elixir getting started guide as the first step in my goal to build something in Elixir. So far, there are lots of things I like and a lot of things I find kind of strange. The Good The fact that Elixir is up front about the performance profiles of lists and tuples is encouraging. Understanding when certain operations will be slow helps us make good decisions about design. The string support seems amazingly robust. The guide claims that Elixir passes every test contained in The String Type is Broken. Being able to avoid dealing with terrible string implementations is a huge benefit and, in the long run, probably worth putting up with a lot of other issues. Parallelism is a …

Is Elixir Worthy of the Hype?

In Uncategorized by Pete

During RailsConf this year, a blog post made the rounds which suggested that, more or less, Rails was dying and Elixir and Clojure were the places to be. I was pretty skeptical. After all, there are still production systems running Fortran and COBOL — the odds that a framework as widespread as Rails is going to dry up any time soon is basically nil. Also, Rails is pretty good at what it does. Most of the “problems” Elixir proponents are solving with Rails are not things Rails was really built to do. It’s a bit like saying everyone is going to give up cars because they can’t make it to the moon. Still, some people are pretty excited about Elixir, …

The Ultimate Password Solution

In Solving the World's Problems, Technology by Pete

Few things are more annoying than passwords. In theory, they’re fantastic. You keep a secret locked away in your super-computer-brain, and nobody else knows what it is, then you use that secret to prove that you’re who you say you are. Brilliant. Except that, in reality, passwords are beset by several tough problems. First and foremost, you don’t have any control over what the website you plug your password into does with it, so using the same password for everything is foolish. That means that instead of having to remember one password, you have to remember a bunch of them and what services and websites they match up with. Don’t write them down, either, or someone with physical access to …

Giving Up Push Email

In Personal, Technology by Pete

When I made the move to smart phones god-knows how many years ago, it was amazing to me that emails would come straight to my phone. It was basically magic; I was fascinated and infatuated. I was living in the future. For years, I had no idea how anyone could live without having access to their email any moment they wanted it. Moreover, I couldn’t understand why anyone wouldn’t want to be notified the second they had a new message. Not terribly long ago I met someone who, more than not needing to know every time she received an email, actively did not want that. I’m not sure there’s a logical or practical reason1,  it’s just a personal preference. It took …

The Myth of Corporate Personhood

In Legal and Illegal, Politics by Pete

Today, instead of handing down the Affordable Care Act opinions like we all wanted, the Supreme Court ruled on the constitutionality of life without parole for minors, some immigration thing1, and a third case2 which tested some of the boundaries of their 2010 Citizens United ruling. Even if you’re not familiar with Citizens, you’ve probably heard about it. Most likely, you’ve heard people offering various sarcasm and snark about “corporate personhood”. Those who opposed the ruling and what it represents did an exceptional job of driving the narrative about the case toward what turns out to be an absurdist interpretation of the court’s opinion. You see, Citizens actually has a remarkably sane holding. So sane, in fact, that were one to read the …

Starting Over

In Miscellaneous by Pete

I have something of a packrat mentality. If it doesn’t cost much to keep something, why throw it away if there’s even the most remote chance you could get even the slightest use out of it again? Recently, I realized that I had boxes that have been with me for two or three years that have never been opened or unpacked. The things inside — whatever they were — had been completely forgotten about. I still had those things. I still owned them. But there was no way I’d have ever used them. So I purged. I threw away what must have been a dozen giant, black trash bags full of things that I had accumulated and carried around for …