Mackenzie Morgan

Things your Spanish teacher didn't tell you

A friend of mine (a native Spanish speaker) just started teaching one of his friends Spanish, and the first thing I said was: Explain to her that ser is essence/identity/characteristic and estar is status, and that’ll go SO much better than the “ser is permanent and estar is temporary” that makes us try to say “es muerto” and “estoy bautista” (because hey, conversion exists). Like, death is pretty permanent, but it’s still a status.

Bulk Delete Twitter Messages

Hey, are you leaving Twitter? Are you worried that with 80% of the staff gone, it’s just a matter of time until there start being unreported breaches? (Heck, maybe there have already!) Want to ensure anyone breaking into your account doesn’t read your messages? Have a bulk-delete script, on the house! To use this, go to the messages page on a computer. Right click somewhere on the page, and choose “inspect” (Chrome) or “inspect element” (Firefox) to get the developer tools to come up.

Well, that's a Friday

This past Friday, I spoke at Code Beam America, and The Quaker World was published. I haven’t spoken at many conferences in the last decade. I did the Elixir Wizards one virtually last year, and this is the first time in person since 2011. It’s just a surprising coincidence that the book was published the same day. I wrote that chapter two years ago!

Tips & Tools for Learning Spanish

[updated 2023-01-28] I’ve studied a silly number of languages in my life, starting with Spanish from age 6 to 14. I returned to studying Spanish in 2017, when I was working with an Argentine client. We spoke primarily in English (I was far too rusty for the alternative), but I quickly became frustrated with not knowing how to speak in the past tense in Spanish. I hurriedly crammed “yo …é, tú …aste, él …ó” into my head and tried to keep up.

Byzantine Easter

Like much of Pittsburgh, I am ethnically Rusyn. I was raised mostly Roman Catholic (because my dad is). At Easter, though, I always attended Holy Ghost Byzantine Catholic Church, where my mom’s family belongs. Byzantine Catholics have very different Easter traditions than many other Christians, but I didn’t notice until I experienced culture shock the time we took our basket to be blessed at the Roman Catholic parish where I grew up, and my basket was decidedly different from the others.

How's the Gender Ratio?

I recently completed a job hunt. I was a lot more intentional this time about having a list of questions to ask the companies I was interviewing with. I highly recommend Key Values for generating a list of questions to ask. They explain why they’re worded the way they are, too. I did ask one thing in a way they didn’t suggest, though. Diversity, equity, and inclusion (DEI) is a hot topic, and I know that asking specifically with those words is likely to get me a canned answer.

Advent of Code 2021

In general, I regard myself as pretty bad at algorithms. I’m comfortable enough doing the Elixir track on Exercism (that’s how I learned Elixir), and I’ve used HackerRank some, but the reason I used HackerRank was because TripleByte said algorithms were my weak point. (It said architecture was my strong suit, and I’m quite pleased with that, as I did put effort into improving on that front.) I really dislike white boarding in job interviews (both because of the nerves factor and because the problems are usually totally unrelated to the job) and so much prefer take-homes.

Pretty Waterfalls in Honeycomb for an Absinthe app

When first setting up the Absinthe app I work on, someone added OpenCensus Honeycomb package. The way it was set up was very basic: each top-level query had tracing attached. :object queries do field :getStuff, :stuff do meta :trace, true arg :input, :string resolve &Resolver.stuff_resolver/3 end end This got us information on how long each query took, so we could see which query needed to be optimized and do some debugging when performance issues hit.

Reusable Django Admin Filters

It’s fairly common to have a many-to-many connection to a User model. But sometimes, you have a lot of users in that table. Problem 1: relations to large tables are unwieldy If we let the Django Admin load every single user into the dropdown in the Django Admin, it’s unusable. The dropdowns are too long. The page takes too long to load. We need to filter it in advance. Dig around a bit online, and you’ll find some code of this form:

How to Network

Maybe you’re about to graduate, just graduated, or have been teaching yourself to code for the last few years, and you don’t know how to get your foot in the door with that first job. You see all those “entry-level” jobs that expect a year or three of experience. Networking is incredibly important, especially if you don’t have any professional experience in the tech industry yet. We’ve all heard it: “it’s not what you know; it’s who you know.