Become a Creator today!Start creating today - Share your story with the world!
Start for free
00:00:00
00:00:01
Use RStudio with Tom Mock image

Use RStudio with Tom Mock

S8 E207 · The PolicyViz Podcast
Avatar
321 Plays3 years ago

Tom works at RStudio, and is obviously very active in the R community. He runs the TidyTuesday project and developed the Grammar of Tables package in the R programming language. 

The post Episode #207: Tom Mock appeared first on PolicyViz.

Recommended
Transcript

Introduction and Guest Overview

00:00:14
Speaker
Welcome back to the Policy Biz Podcast. I'm your host, John Schwabisch. I hope you're having a nice holiday season. You're staying healthy and staying safe. On this week's episode of the podcast, I am very happy to have Tom Mach join me. Tom works at RStudio and is obviously very active in the R community. He runs the Tidy Tuesday experiment or program or initiative, whatever you'd like to call it. And you should check that out. We're going to talk about it in this week's episode of the show.
00:00:40
Speaker
Thomas also developed the GT package in R, the grammar of tables, which if you know anything about my work, anything about my writing, you know, I'm more and more interested in how we design really good tables and having a package, a library in R that enables us to do so in better and easier ways is I think a huge step, a huge advantage for those of us who are working with data and trying to communicate data.
00:01:05
Speaker
So we talk about all those sorts of different things that Tom does at

Career and Role at RStudio

00:01:08
Speaker
RStudio. We talk all about these different programs and initiatives. And of course, we talk in depth about grammar of tables. So I hope you'll enjoy this conversation with Tom Mock. And here is that discussion. Hey, Tom, good morning. Welcome to the show. How are things? Good morning. It's good to be here. Things are great. Just got back from a little break at RStudio. We have the weekend off and a couple extra days for Labor Day.
00:01:34
Speaker
Nice, nice. And doing anything super exciting, super fun. I know you're not like going into indoor stadiums and rock concerts and whatever, but. Yeah, a few days off was nice. We moved recently. So getting settled into our new home and enjoying the outdoors has been a big chunk of our time.
00:01:52
Speaker
Lovely, lovely. Well, thanks for coming on. I'm really excited to have you on the show. I think we did a conversation a little over a year ago, I think it's sort of the beginning of the pandemic where we talked about a lot of the work that you're doing in our studio. You did a talk for some folks over at Urban about the tables work that you've been doing. So it's been great. And I'm excited to share all the work that you've been doing.
00:02:15
Speaker
with folks who are listening. So I want to start talking about your work at RStudio. I know you recently got a big promotion. You're a big, big guy now. And then I want to talk about, I guess, three main things. So your work at RStudio, you're managing, organizing, facilitating Tidy Tuesday, and then also the grammar of tables stuff, which
00:02:36
Speaker
As far as I know is like the only place someone's actually like thinking about doing tables better, which is kind of amazing if you think about it. So, um, so that sort of sets everybody up. Why don't we start about our studio? So how long have you been there? What's your trajectory been like? What have you been working on?

Tidy Tuesday Origins and Impact

00:02:53
Speaker
Yeah, absolutely. So I joined our studio at the middle of 2018 straight out of PhD school, um, started on their customer success team.
00:03:01
Speaker
which was mainly like working with existing clients and helping them use our software and open source data science tooling. As you kind of mentioned and alluded to, I just got a promotion to be customer enablement lead. So still kind of working the same space, but just thinking at a bigger scale, rather than working with individual customers, the entire customer base.
00:03:23
Speaker
Um, so thinking about documentation, some of the training we do, some of the educational initiatives, um, just overall, like what is the user experience and kind of how are they learning how to use our software and external software as well. Right. Right. And just for folks who don't know how big is our studio? Like how many, how many people do you have there? Yeah, I think we're at like 180 people now. So, um, you know, some people call it a startup, some people call it a, you know, a tenured company, been around for
00:03:53
Speaker
a little over 10 years at this point. So been around for quite a while. So a good company that I've enjoyed working with for three years. Yeah. That's great. That's awesome. That's awesome. So let's start with tidy Tuesday. Yeah. You know, these community projects are really valuable, I think, to lots of different people for lots of different reasons. So maybe we could start by having you talk a little bit about the background of it. And then maybe you're like,
00:04:21
Speaker
I was going to say day to day, but it's really week to week. How do you manage it? How do you think about organizing the whole thing? Totally. Yeah. Tidy Tuesday was born out of something I was doing and something I was working with in grad school. I joined what was called the R for Data Science, Online Learning Community, midway through, I think, 2017. I was trying to learn R. I was trying to bump up my skills in R as a statistical programming language and as a data science skill set.
00:04:51
Speaker
So learning with the community and part of that was, you know, we wanted to connect mentors with learners. How do you do that in a scaled fashion? Otherwise you have 100 learners with one mentor and it just, it doesn't work. Right. So the idea was like, okay, well we can do like a weekly project. There's other things doing that. There's things like Makeover Monday that's great. There's Workout Wednesday. There's other kind of
00:05:13
Speaker
storytelling with data community, people were already doing a similar idea, but a lot of those were kind of emphasized around specific software suites. So there wasn't really one that was like, oh, here's how to learn with R or learn with open source data science. So we were like, okay, we can do a similar thing, new data, make sure that there's an article associated with it so you get the context and that you're able to learn and see everyone's code.
00:05:41
Speaker
So launched it in April of 2018 and kind of gangbusters since then. It's been, I don't even know how many thousands of people, but you know, around 120 or so people contribute every week and multiply that out by three and a half

Choosing Datasets and Community Engagement

00:06:00
Speaker
years. And that's what you're going to get out to.
00:06:02
Speaker
Um, so yeah, that was kind of the beginning. Um, as far as like organizing and growing, a lot of it was kind of natural in terms of like, my role has really been, um, aggregating the data, cleaning it up, providing the script to bring it in. And then just saying, you know, have at it. It's pretty open ended intentionally.
00:06:23
Speaker
And what the community has done is built on top of it to extend it further, like aggregating the visualizations people have created, aggregating the code, doing their own screencast, doing live video, podcasts. There's all sorts of things that have built out of it that aren't my work, just the community building on top of it.
00:06:43
Speaker
Right. So when you think about this idea of teaching people are at scale, like, do you think this is the way to do it? Is, is it community? I mean, I will say, and I've written about this in the past, like, uh, I have an urban colleague who's really, you know, great at R and I said, Aaron, like, can you sit down with me for two days and just like,
00:07:02
Speaker
Because I had tried some of those massive online courses, like Andrew Tran and The Post had done one, it was great. But three days in, I'm like, I don't have time for this. So what's your take on that?
00:07:15
Speaker
No, I mean, my persona that I'm teaching to primarily is a business professional, someone working, someone not in an academic setting. So that's a different persona than say a college student, a high school student, or even a grad student. You don't have the time to dedicate, oh yeah, for nine to five I'm learning or from nine to noon I'm learning and in 12 to five I'm doing my lab work.
00:07:40
Speaker
It's just a different persona. So for me, I think that focusing on just-in-time learning, better documentation, project-based learning is really effective for the user population because it's solving the problem they want to solve. They're not necessarily like you think of this random adult trying to learn a project.
00:08:00
Speaker
they're not saying like, okay, I'm ready to learn all of data science using R. They're like, I have an Excel file that's too big to open with Excel, and I need to graph it or something like that. Or I got a statistical suite I need to run, and I don't know how to run it with SPSS or Systat or whatever. So I need to use R that has everything built in.
00:08:21
Speaker
Um, so aiming at that, it's like having something like tidy Tuesday, where specifically for graphing or exploratory data analysis, here is a moment in time with a dataset that might be interesting to you. And there's a hundred examples of how people attack the problem.
00:08:37
Speaker
That's the core idea. It's a project, it's scoped, and it has hopefully useful data. Over time, there's different data sets that people might contribute to. Some people have biology, some people have sports, some people have political data. Everyone's not going to be interested every week, but over time, you have this giant mass of data with different scripts and then analyzing it. I think that's been really effective for people to jump in and jump out when they need to.
00:09:05
Speaker
Yeah. Yeah. So, I mean, do you, when you think about providing these data sets, are you thinking about, yeah, how can I pick as broad a spectrum from week to week that I can so that, yeah, if I'm not interested in sports. And so that's sort of a weird question, I guess. So like, yeah.
00:09:25
Speaker
Do you think people like when they're trying to learn this or like, I'm not interested in sports. So if like, if it's tidy Tuesday week one in September and it's on sports, I'm just not going to do it. Even though like it's really not the point, right? It's like the content is kind of not the point. Like how do you, yeah. So how do you think about like mixing matching? Yeah, I think for me, um, honestly, there's a lot of people in what I asked the community to do a lot is submit issues on the tidy Tuesday repo for here's a dataset I want to see.
00:09:53
Speaker
So a lot of the time while I'm doing the legwork of cleaning it up, aggregating it and throwing it into the repository, someone else has really chosen the data. So I do kind of pull in like, here's something someone else has suggested.
00:10:07
Speaker
As far as what you're saying, though, like, yeah, there's plenty of times where I see people comment, like, I know nothing about, we'll use sports, for example, I know nothing about the NFL, but, you know, explore the data, found this cool thing, and here's the technique I learned. Like you said, the data is really secondary to it. For some people, though, they need that motivation to even engage. Like, they're like, I'm not learning R for R, I'm not learning open source data science for open source data science.
00:10:31
Speaker
I'm interested in this and I want to learn more about how to do that. Right. Right. So now it is interesting that you're approaching it. I mean, it makes sense. You're approaching it from like the date of his perspective. So like, you know, Hadley Wickham's book, which is like, I'm looking at it. It's like sits on my desk.
00:10:50
Speaker
you know, Hadley and Garrett's book starts like chapter one is like on data viz, right? It doesn't start with data cleaning, doesn't start with regression analysis. So like, what's your take on why that's, I don't want to say a better approach, but well, I guess maybe I'll ask like, do you think that's a better approach? And if so, like, why do you think starting with the graphing is that is a better approach?
00:11:12
Speaker
Yeah, totally. I am 100% going to steal a concept that I 100% agree with from Mina Esenkaya Rundel, who's an

Learning with R Community

00:11:21
Speaker
education person here at RStudio. She has an entire course set up basically called Have Your Cake and Eat It Too, along those lines, which is start with data vids. And the reason why is that if you're teaching someone how to do something with R, you can talk to them about lists and vectors and objects and memory computation.
00:11:42
Speaker
and someone's fallen asleep, or you can start with, here's you in four lines of code, creating a beautiful data visualization. Like that's the hook, like hook them in. And then once they're, they're excited about that and they realize I can be very powerful very quickly, build up the knowledge around that. They still probably need to know about lists and object types and vectors and characters.
00:12:05
Speaker
But starting from that, from day one, you're going to lose a whole cohort of people if you're doing something, especially at like scale.

Introduction to GT Package

00:12:13
Speaker
Yeah. So we know that like the value or the popularity of database has grown over the last few years. So do you think, I remember learning in my younger days, learning SAS and Stata and Fortran, which you can graph, but okay, but like learning SAS and Stata, and you didn't start with the graphs. Do you feel like,
00:12:33
Speaker
you know, the change in the tools of starting with dataviz is like part of the growing popularity of dataviz or has this sort of perception like let's start just the way you said it like let's start with something where I can get like something visible right away has changed the way people view dataviz and that like where's the direction running or is it just like a huge network mess that we don't know.
00:12:55
Speaker
I'm going to punt and say it's a huge network mess, but I'll still give an answer in terms of I think everything interacts. But if you think about it, a lot of the older books from the Bibles of Data Vis were about here's how to not do things the way that the defaults tell you to do it. Because they're telling you to do 3D scatter plots or 3D bar charts, and the defaults are terrible.
00:13:18
Speaker
Nowadays, if you think of ggplot or even excel and other things, the defaults are actually pretty good in terms of they start from a baseline of the defaults are okay.
00:13:30
Speaker
You're not breaking massive rules just by not editing it further. And other tooling is created that have just been more user-friendly in terms of like you didn't have to learn 99% of how to do database before you could make a good thing. You can even from day one get started and make something beautiful, make something interesting.
00:13:52
Speaker
Right. So in my opinion, maybe not necessarily that people are teaching database first, but it has become more approachable with better tooling, better defaults, and just more people thinking about it from kind of a top down approach.
00:14:05
Speaker
Yeah, I want to ask one more question on this on this learning before we go to tables. So what would your advice be to someone who wants to learn R, but they see your work and they see lots of other people doing great work. I mean, I think of a few of top my head, but like they're seeing all this great stuff built in or whatever tool that they want to learn. And they're a little overwhelmed by saying, well, I'm never going to be able to like
00:14:30
Speaker
make that thing. So what do you say to those people who might feel a little overwhelmed before going into learning a tool? Yeah. So part of all of Dataviz and why I think maybe this is even to the previous question, why it has been so successful is the community building around it. Regardless of what tool you're using, there is a community that's very excited about helping people get into it. Obviously, our community is the one I'm most deeply embedded in. I love it.
00:15:00
Speaker
But every tool has an ecosystem around it. Um, in terms of people that get intimidated, seeing, you know, good work, I hear you in terms of like, I was there a few years back. I was like, man, I can't make this. I feel like I'm just spinning my wheels. Um, part of what I've actually talked to actual people doing tidy Tuesday about is they're actually just doing it locally. They're not even submitting, submitting their graphs on Twitter.
00:15:26
Speaker
So they're still able to borrow from the community. They're still able to like, Oh, maybe if I can join and talk to this person, I can learn something.
00:15:35
Speaker
But they don't have to take that next step of someone else can see my work. That's often stressful for people. I think there's huge value in sharing your work, because then you can get useful feedback. But it takes time for you to build up confidence to get there. And that's OK. So I guess my suggestion to new learners is if you want to engage with something, try and find a community. For R, there's like the R for DS online learning community.
00:16:03
Speaker
there's things like the rstats hashtag on Twitter. And even within your local community, whether it's a job or a university setting or something like that, I guarantee you there's someone using R or another tool that you're trying to learn. Yeah, I think that's a great piece of advice. I mean, find those people that are like right next door to you. Well, not anymore, but virtually right next door to you. OK, so I want to turn our attention to tables because I'm so excited about the GT package.
00:16:33
Speaker
I mean, just, just the like concept of, of trial. Okay. So I want you, this is what I want to ask. So I want you to describe GT for folks. And then if you could tell me about the philosophy behind it, because people have asked me to do something similar and Excel, like, oh, come up with templates. And my answer has always been, it's just like impossible because there's merge cells in different places and tables can have an infinite sort of dimensions and directions. And so I'm very
00:17:02
Speaker
fascinated by how you approach that from a sort of templating code base. Totally. Yeah. So, so GT is, uh, an R package standing for the grammar of tables. Um, the grammar idea is borrowing from the idea of a grammar of graphics, um, or GG plot being an implementation of a grammar of graphics. So GT is an implementation and a defining of a grammar of tables.
00:17:32
Speaker
So what that means is that you can still build the exact same tables you're used to, but you now have specific functions and specific language to apply changes to all the different areas of the table.
00:17:45
Speaker
This is not necessarily a new concept. I've seen older versions of defining the parts of the table. I know you've even done work about like here's the parts of the table. Steven Few back in the trend members book name, show me the numbers, has a definition of the parts of the GT table.
00:18:03
Speaker
or not part of a table, but I think what this is is actually an implementation of using those nouns and verbs to actually create the table as opposed to just describing it.
00:18:16
Speaker
That was pretty long winded, but what this does is gives you an interface or a human interface to be able to create said table programmatically. So you can define all the different components. You can use data to change all those different things based on the actual values, which is very, very powerful. Yeah.
00:18:35
Speaker
So does it

GT Package Development and Customization

00:18:37
Speaker
work? I mean, I've tinkered with it. So I'll ask the questions. I'm sure other people are thinking about right now listening to this. So does it work similarly to GG plot in terms of aesthetics and in terms of all the pieces that you sort of, so one of the reasons I like R sort of, I feel like it's plug and play, like you sort of like have the fill command, the color command. Is it work philosophy in the same way?
00:19:02
Speaker
Yeah, so I will say that at a very detailed level, we'll go way back then come forward. GG plot basically creates a massive list of different things that are being changed.
00:19:15
Speaker
And so you might think of like you're saying aesthetics like the x-axis is equal to this and it's these values GT works in a very similar way where it says the cell bodies or the table body the actual values Here are their different labels in a list. Here are the actual values in a list Here is the formatting in a list applied to those values. So if you look at it, it's literally just list on list on list
00:19:38
Speaker
That's really hard to write, though, so what it provides is, like you were saying, instead of aesthetics, you have things like cell's body, which would be like, rather than mapping the aesthetic of axis, x equals some variable, map the table body to these cells.
00:19:58
Speaker
So it's going to build the table up, but then you can actually apply your aesthetics or whatever according to the different components. So cell body, column spanners, column labels, the title, subtitle, the stub head, you can define all those different parts either programmatically or manually.
00:20:17
Speaker
I see. So if you have, let's just say you're going to have data by state. Let's just say, let's say percent of the population of men, percent of the population of women in each of those states you've got. And then if you wanted to have a spanner across that, that said gender or something like that, you would define that through the spanner column component.
00:20:37
Speaker
Exactly. You would say, basically the function would be something along the lines of spanner column label. And you would say, I want to apply it on column of gender, or male and female in this case, or however you want to put it, or non-binary. And then that would create the column label as a spanner or column spanner across those two labels. Right, right, right, right. So now when you think about people
00:21:06
Speaker
using GT in their work. How are you thinking about them bringing in the data into R? Are you thinking about like, Oh, I have this table in Excel and it's sort of all formatted, but I want to bring it into R because
00:21:21
Speaker
that's my preferred toolkit or it's easier to update. Once I have it in R, then I can build all these other graphs out of it. In that case, when you have the spanner columns or you have these group rows or whatever, how do you think about working from one input into GT? Yeah. GT accepts basically a data frame, which in R is essentially a tabular data format.
00:21:46
Speaker
So GT doesn't care how that data gets in. It could be pulled from a web API. It could be scraped from HTML. It can be brought in from Excel. It can be brought in from SQL in a database. All it has to be is in a tabular format in terms of in a data frame or a tibble in R.
00:22:03
Speaker
then it can just be passed into GT and it knows what to do with it. Once the tabular format is inside GT, then you've created a GT object. So you can make edits to it, and when it prints, it actually prints the table. It doesn't print the data, it prints the formatted table every time.
00:22:23
Speaker
Right. Okay. So where do you see GT going? So like, you know, as with GG plot, there's always, I mean, all packages, there's always these updates. So like, where, where do you see GT going over the next whatever year two, 10, 12.
00:22:40
Speaker
Totally. I think the two good things here are, right now, we have essentially a pure grammar of tables implementation. And I say we, I am not a developer of GT, so I'm going to give credit to Rich Ionone, Joe Chang, Barrett Shlork, who are the actual developers creating it. I post issues and things to the repository, but credit to them for maintaining and authoring the package.
00:23:05
Speaker
So what they're doing is creating this rich API and people can build on top of that. So if you think of something like the GT summary package, that takes a statistical model or counts and things using the GTA interface, but creates a different table.
00:23:23
Speaker
It's a wrapper on top of it. That's what ggplot does is ggplot provides you a rich interface. You can build beautiful things with just ggplot, but there's dozens of packages built on top of ggplot to do more because there is an API you can use to do that. The one thing that I am an author of is I just built out the GT extras package over this long weekend.
00:23:48
Speaker
What that is, is essentially removing some of the boilerplate and summarizing down some of those functions. So you think of like, I want to add a bar plot to all of these cells that is relative to the cell values. You know, I can do that with nine lines of code in GT, which is appropriate. You're saying, I want to apply it to this column for all these cells. And here's the actual function to create the, uh, the bar plot.
00:24:17
Speaker
Or in a higher level package like GT extras, you can say apply bar plot.
00:24:25
Speaker
And it just does all of that boilerplate for you. You just say like, here's the column I want to apply it to. And it passes a palette. It passes all the code to build the table. It passes all the code to build out the bar plot as well. Gotcha. So just so we're all the same page on your long weekend, where our studio gave you extra time off, you built the GT extras. So I think that's dedication to a craft that I, that I can very much appreciate. I don't know where I got like.
00:24:52
Speaker
the pandemic for me myself care for some reason has been let's dive as deep as possible into the grammar tables. So for literally since about April of 2020 to now I've just been slamming mental energy into the tables because
00:25:10
Speaker
can't go to restaurants, can't go to bars, can't go to sports games. So I do a lot of that on random days and it's been working. I'm happy doing it. So it is a good form of self-care. Yes, that's great. I want to ask you two more questions about GT. Yes.
00:25:28
Speaker
Is it possible now or do you foresee it becoming possible to add visualizations into the tables? And like specifically, I'm thinking about spark lines, which I know you can do in GG plot. Like, do you see that as part of GT and also like Excel has a little data bars that you can build right into tables. So like, do you see that as, as part of it?
00:25:47
Speaker
Oh man, this is like the softball right over home plate for me. So GT extras has, uh, plotting functions. It has a plotting function for horizontal bar plots. It has a plotting function for percent of total. So like three, uh, like zero to 100. And there's like three bars within there and making up the portions.
00:26:07
Speaker
It has spark lines and for your little stacked points there's a win-loss plot which is styled after the Guardian. They do like a vertical pillar that's green for a win in a sports game and a vertical pillar that's red and slightly subset as a loss and a tie would be a gray dot in the middle.
00:26:27
Speaker
So all of those are built into GT extras. Now, that being said, you can still do all that with GT because that's what I'm doing is just writing code on top of GT. So GT for any row can accept a GG plot or any image. So if you can create an image, you can post it in line. And so that could be SVG or PNG, whatever you want to create. But GT alone. Oh, absolutely. It can build anything into there.
00:26:55
Speaker
That's awesome. And just so people know, like we didn't set that up beforehand. That was, that softball was not pre predestined. Um, I want to ask one last question for you. Um, uh, so like tables seem to get not seen, they do get less attention in the database field. Um, and you mentioned, uh, Steven fuse book has a really long chapter on tables. I have a chapter on tables in my book, a good chapter.
00:27:20
Speaker
Oh, thanks. Is it just because tables aren't as sexy as a dot plot? Or we use so many tables all the time. We use tables before we even get to the graphs a lot of the time. Absolutely. I think that my hot take is that people are actually creating tables with a lot of the data vids they use. If you think of a horizontal bar plot, that is just a table that happens to have a horizontal plot inside

Importance of Data Tables in Communication

00:27:48
Speaker
of it.
00:27:48
Speaker
And you can do the similar things where a table can have six values and plots a seventh. And that's very, very valuable for here is the data visualization showing the trend or the overall shape of the data. But here are the raw values showing lookup values that you can also associate.
00:28:08
Speaker
It's really, really hard with an actual graphic to encode five or six different things. You start doing color, shape, opacity, how dark the color is, how light the color is. You can get in these spots where it's really hard to interpret. That's really easy for a table to do. Just put the numbers in there.
00:28:28
Speaker
But, you know, I know we're out of time here, but the idea is that with a table, people haven't spent as much mental energy into making good ones. So all people see you're like, Oh God, I don't want to show that. That's a, that's a terrible table. Yeah. If you

Podcast Conclusion

00:28:43
Speaker
apply similar techniques, like a better data and ink ratio, if you use things like your book in terms of 10 table rules or your rules from Steven fuse book, you can actually like make beautiful tables and get tables that people want to see.
00:28:58
Speaker
Yeah, that's great. I mean, I'm, I'm really excited about it and see how people use it. And I, I'm excited for, uh, I don't think I've seen it yet, but I'm excited for like the first tidy Tuesday. That's like, this is going to be, we're going to do a table one for tidy Tuesday this week and just see like how many people get mad that I have to make a table instead of, you know, a fun graph or something. So we've done a, we haven't done a core table one, but there's been a lot of beautiful tables through tidy Tuesday. So I always appreciate seeing them pop up.
00:29:25
Speaker
That's great. Well, Tom, thanks so much for coming on the show. Congrats on the promotion and congrats on the GT package. It's really great. I'm excited about it. So, so thanks a lot. I appreciate it. Thanks for having me, John. Have a great week.
00:29:39
Speaker
And thanks everyone for tuning into this week's episode of the show. I hope you learned a lot about RStudio and about Tom's work. And I hope you'll go check out the GT package in R. It's a great addition to your R toolkit to make better and more effective tables. So enjoy your holiday season, another episode or two coming up before the end of the calendar year. So until next time, this has been the PolicyBiz Podcast. Thanks so much for listening.
00:30:05
Speaker
A number of people help bring you the PolicyViz podcast. Music is provided by the NRIs. Audio editing is provided by Ken Skaggs. Design and promotion is created with assistance from Sharon Sotsky-Ramirez. And each episode is transcribed by Jenny Transcription Services. If you'd like to help support the podcast, please share it and review it on iTunes, Stitcher, Spotify, YouTube, or wherever you get your podcasts.
00:30:26
Speaker
The PolicyViz podcast is ad-free and supported by listeners. If you'd like to help support the show financially, please visit our PayPal page or our Patreon page at patreon.com slash PolicyViz.