Harry and I moved to Boulder. As a part of our drive out here, we stopped in Santa Fe to see Meow Wolf.

I think of Meow Wolf as somewhere the spectrum between Burning Man and Sleep No More. It’s the product of many independent artists, but impressively congealed into one large exhibit.

My favorite moment was walking around an old house and seeing people walk out of the refrigerator. Were they time travelers?!

meow_wolf

After that encounter, I suspended a lot of assumptions about household appliances, and really began prodding for secret passageways.

Even though I’m sure I’ve missed a lot of rooms, Meow Wolf doesn’t feel like it has the same repeatability as Sleep No More. Still, I highly recommend a visit if you’re in the Santa Fe area!

Harry, Brian, and I visited Hawaii earlier this year. To me, Hawaii was synonymous with exotic paradise, so I was especially excited to go on the trip. I’m happy to report Hawaii did not disappoint.

We spent about a week there and swam with a multitude of sea critters. My two favorite moments were watching a snail eat a sea urchin and being surprised by a sea turtle in the shallow waters.

snail

turtle

It was amazing! I would definitely go back!

In FactoryBot, you can reference fields of a factory when defining other fields of the same factory. That helps reduce code duplication!

For example, suppose you have a Person class that has the fields first_name and full_name. You can define the Person factory so that full_name will reference first_name.

That looks like this:

factory :person do
  sequence(:first_name) { |n| "foo#{n}"}
  full_name { first_name.capitalize + " Smith" }
end

This was tricky to figure out, so I’m jotting it down here!

When you’re running a simple Flask app in development, you might specify a particular port where the server should run (the default is 5000).

Then in your browser you can visit localhost:5000/foobar.

But in Flask tests you don’t need to specify the port, just the route:

from flask_testing import TestCase

class TestFoobar(TestCase):
    def test_foobar(self):
        response = self.client.get("/foobar")
        # ...

That’s because, underneath, Werkzeug test clients don’t issue actual HTTP requests. They abstract that away.

Source: this Stack Overflow post.

Sometimes you just need long strings.

In tests, I sometimes like to include tiny CSVs as a part of the test code instead of a fixture file. However, that looks real gross real fast with all the linebreaks.

Heredocs to the rescue!

In Ruby, instead of:

sample_csv = "foo,bar,baz\na,b,c\nd,e,f\n,g,h,i"

You can do something like:

sample_csv = <<~EOS
   foo,bar,baz
   a,b,c
   d,e,f
   g,h,i
EOS

Isn't that much better?