Posts
2025
- Lessons From the Signal Leak
Mar 31
I’ve found a lot of the coverage about the Trump administration’s accidental leak of Signal messages to The Atlantic frustrating. To read most of the coverage, the major mistake was Mike Waltz’s inclusion of Jeffery Goldberg in the conversation, and the big questions are about the impact of this particular leak. I have two alternative takeaways, one about the general security attitude, and one about Signal itself.
2024
- Five Eights
May 14
With the recent news that Adam Selipsky is stepping down from AWS, I thought I’d share my funny Adam story.
2022
- Two Unequal Products
Oct 3
Here’s a reasonably elegant solution to a fun problem I stole from Timothy Gowers: prove that for every positive integer n, there do not exist positive integers a, b, c, d with ad=bc and n^2 < a < b < c < d < (n+1)^2.
- Au Revoir, Snowflake!
Sep 6
Just reading this blog, you might guess that all I do is leave jobs. First leaving Tableau, and now, four years later, departing Snowflake. Here are some thoughts on the future.
2021
- Iterating Over Metadata With Snowpark
Aug 17
Last time we saw how to create and use simple Java functions in Snowflake using Snowpark to detect and mask PII. But this gets awkward and tedious if we need to mask many columns. Let’s see how we can use Snowpark to iterate over metadata to make this simple and repeatable
- Basic PII Detection and Masking in Snowflake Using Java
Jul 28
I wanted to share some code that I’ve used previously in demos. The examples here do basic detection and masking of personally-identifying information (PII) in Snowflake using Snowpark and Java’s built-in regular expression support.
2018
- A leopard can't change his spots. (But he may change jobs.)
Jul 15
My last day at Tableau was July 6th, and tomorrow I start a new gig at Snowflake.
- Tableau Prep: The Power of Composability
May 9
When we built Tableau, we put a premium on ensuring composability_of operations: string operations together in any combination you need. In the rest of this post, we’ll walk through a Superstore example that highlights this power.
- Tableau Prep: The Flow
May 7
Tableau Prep out the door and it’s time to make a little noise. Here I’d like to cover a key concept underlying Prep that may be a bit foreign to people coming from Tableau: the flow.
- When Live Beats an Extract
Mar 14
When using Tableau, taking an extract is always better than using a live query, right? Well, no. Let’s take a look at a few cases.
- A Visual Guide to Telescope Eyepieces
Mar 5
I needed some help when choosing telescope eyepieces, and was thrilled to come upon a very thorough list over at Cloudy Nights. But a spreadsheet is one thing—a viz is better.
- The Fourier Series via Linear Algebra
Feb 27
On vacation, I decided to write about something a little out of my comfort zone: Fourier series. They always seemed a bit magical, but going through Arthur Mattuck’s excellent differential equations course, they clicked for me, so I thought I’d distill this out.
- The Query Behind the Viz
Feb 13
How do I get at the queries that Tableau generates? Let me show you three ways.
- Custom SQL in Tableau: Subqueries and SQL Injection
Feb 5
I recently answered a question about why some (perfectly correct) SQL wasn’t working in Tableau. So why would a perfectly reasonable custom query fail? And what’s the link to SQL injection? Read on!
- Row-Level Security: A Cautionary Tale
Jan 29
Row-level security is a common requirement for people trying to control access to data. Let’s explore a common way to implement row-level security on top of a relational database and see why it may not be as secure as it looks.
- A Dozen Notes, Give or Take
Jan 21
Western classical music typically uses twelve distinct notes. It always bugged me: why twelve? Let’s see!
- Tableau Data Sources: Live vs Extract
Jan 12
A look at another aspect of Tableau that people often find confusing: the difference between live and extracted data sources. And again, we’re going to take a bit of a database perspective to clarify the situation.
- Dimensions and Measures: A SQL Perspecitive
Jan 7
Going through Boot Camp after joining Tableau and learning about dimensions and measures, I remember finding the descriptions rather confusing. Let’s clear this up.
- Hello World!
Jan 4
It’s really: “Hello again!”