Today I Learned

A collection of short, quickly written posts capturing things I learned that seemed interesting at the time. Hopefully something here is useful to someone else!

Adding Metabase to Metabase to query Metabase in Metabase

There are a lot of obscure, one-off queries I've saved in Metabase to answer different questions about our business. For example, I pretty regularly need to do some percentile-based rankings to estimate the impact of a product feature, and for the life of me can never remember how to construct a percentile query—but I can remember some keywords from past…

I had the great fortune to attend Hilary Mason’s ( @hmason ) workshop this past Sunday at Strange Loop 2011 . I was, in fact, so excited by the opportunity to attend this workshop that I actually got up early Saturday morning and prepared to leave for the hotel when I realized that I still had 24 hours to go–at least I didn’t make it all the way to the…

This morning at Strange Loop 2011 , I had the opportunity to attend Bill Odom’s excellent vim talk. Bill co-runs the local vim-geeks group and I have attended his talks on vim in the past and every single time he has impressed me and managed to teach me more and more–he’s a true master at it. Bill has already managed to put his 300 slides online . I…

Why A couple of days ago I ran across a really neat boilerplate for mobile-friendly development called Skeleton . This seemed great, and because I do my web development in Haskell and use Jasper’s excellent blaze-html , I wanted the index.html coded in Haskell. No problem, right? Wrong. As soon as you look at the index.html file, these top lines…

As we all know, Django has a rather lovely admin package . However, in a module’s admin.py, all desired models must manually be registered with django.contrib.admin.site.register . No longer, say I. The only time I use the admin package is during development, I roll my own for production. So, it stands to reason that I wouldn’t want to spend much time…

I’m sure a lot of you know this already, but it’s always nice to share some information on the off-chance that someone doesn’t. I am actively working on a library and, when profiling the execution of the tokenizing methods, I noticed a large inefficiency with the has _ key() function that only gets worse as the dictionary grows. I switched this to an if key…

michael schade

I built out engineering and operations teams at Stripe as employee #20 from 2012 to 2019; now I'm working on something new. I like helping people, photography, reading, gym, traveling, and learning new things. Say hi! 🏳️‍🌈

  • michael@mschade.me
  • twitter
  • linkedin