Recent Posts

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

The Query Behind the Viz

7 minute read

Several posts here have explored the queries Tableau generates as it builds your viz, including last week's write-up on custom SQL. This is a trend that will continue: it's much easier to understand a machine when you can see its inner workings. But how do I get at those queries? I was talking with Yvan Fornes, and he suggested that I write about how I do it. Challenge accepted! Except I may have gone overboard: in this post I'll explore three ways to find the queries underlying your viz.
(Continued...)

Custom SQL in Tableau: Subqueries and SQL Injection

5 minute read

I recently answered a question on the Tableau Community forums that arose from confusion over why some (perfectly correct) SQL wasn't working as custom SQL in Tableau. The poster wanted a list of Tableau's supported syntax. But as it turns out, that's the wrong question: Tableau doesn't have a list of all the custom SQL syntax it supports because it really is just passing along the SQL code as you've typed it. So why would a perfectly reasonable custom query fail? And what's the link to SQL injection? Read on!
(Continued...)

Row-Level Security: A Cautionary Tale

7 minute read

Row-level security is a common requirement for people trying to control access to data. Some systems provide this natively, but when it's not provided, people often roll their own using the tools they have—with mixed results In this post we'll 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.
(Continued...)

A Dozen Notes, Give or Take

7 minute read

Western classical music typically uses twelve distinct notes. It always bugged me: why twelve?
(Continued...)

Tableau Data Sources: Live vs Extract

8 minute read

Continuing last-week's trend, we'll again take a look at an 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.
(Continued...)

Dimensions and Measures: A SQL Perspecitive

5 minute read

I thought I'd kick this off gently. I remember going through Boot Camp after joining Tableau and learning about dimensions and measures. And I remember finding the descriptions rather confusing.
(Continued...)

Hello World!

less than 1 minute read

It's really: "Hello again!"
(Continued...)