Recent Posts

Two Unequal Products

5 minute read

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.
(Continued...)

Au Revoir, Snowflake!

2 minute read

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.
(Continued...)

Iterating Over Metadata With Snowpark

3 minute read

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
(Continued...)

Basic PII Detection and Masking in Snowflake Using Java

5 minute read

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.
(Continued...)

Tableau Prep: The Power of Composability

5 minute read

When we built Tableau Prep, we put a premium on ensuring composability of operations: you can take the operations Prep supports and string them together in any combination you need. There are no restrictions based on where the data came from, or what operations came before.
(Continued...)

Tableau Prep: The Flow

5 minute read

I've been a bit quiet lately, but Tableau Prep out the door and it's time to make a little noise. Clark recently wrote an excellent post on the basic UX architecture of Prep. Here I'd like to cover a key concept underlying Prep that may be a bit foreign to people coming from Tableau: the flow. This isn't the most glamorous part of Prep, but it is one of the most fundamental concepts in the tool, so it seems worth spending some quality time on. Strap on your life jacket and read on for more.
(Continued...)

When Live Beats an Extract

7 minute read

When using Tableau, taking an extract is always better than using a live query, right? Well, no. Of course. Obviously, when your data are changing and you want to get all of the latest updates in your viz, you'll want to use a live query. But if that's not the case, then an extract is clearly better, especially with Hyper in 10.5, right? Well, no! Shoot! This is complicated? When will live beat an extract? Let's take a look at a few cases.
(Continued...)

A Visual Guide to Telescope Eyepieces

2 minute read

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.
(Continued...)

The Fourier Series via Linear Algebra

7 minute read

I didn't post last week because I was on vacation. But on vacation I decided to write about something a little out of my comfort zone: Fourier series. (Yeah. Try being my wife.) Fourier series (and the related Fourier transform) made some sense to me for, but I never really learned how to derive them so they always seemed a bit magical. As I was going through Arthur Mattuck's excellent differential equations course at MIT's Open Courseware, the Fourier series clicked for me, so I thought I'd distill this out.
(Continued...)