The Changelog: Software Development, Open Source - Metabase & open source Business Intelligence (Interview)
Episode Date: November 14, 2015Sameer Al-Sakran and Tom Robinson from Metabase joined the show to discuss Metabase - their open source tool that's laying the foundation of their goals for open source business intelligence....
Transcript
Discussion (0)
I'm Samir Al-Sakran.
And I'm Tom Robinson, and you're listening to The Change Log.
Welcome back, everyone.
This is The Change Log, and I'm your host, Adam Stachowiak.
This is episode 182, and on today's show, Jared and I are joined by two of the guys behind Metabase, Samir Alsakran, and also Tom Robinson.
And Metabase aims to be the simplest, fastest way to get business intelligence and analytics to everyone in your company.
We dove deep into what the tool is, how SQL fits into it, the technology behind it all, Clojure, JavaScript.
A lot of fun having these guys on the call today.
We had four awesome sponsors for this show.
CodeShip, TopTow,
Harvest, and also
DigitalOcean. Our first
sponsor for today's show is CodeShip.
If you haven't checked out the blog from CodeShip,
go check it out. Blog.CodeShip.com
And there was a recent
post I want to mention from Barry Jones
titled Why Dockercker and he
dives deep into why docker became a household name why docker instead of vms he even goes into how
docker enables consistent environments and even the fact that docker isn't going away he makes
that hypothesis that it's not going away there's also an ebook mentioned in that article it's free
it's from codeship super awesome ebook it in that article. It's free. It's from CodeShip. Super
awesome ebook. It's titled Why Containers and Docker are the Future. This book is awesome. Go
check it out. The link is in the article and I'm going to put a link to the article in the show
notes. So check out the show notes, changelog.com slash 182. And now to the show.
Howdy, everyone.
We are here today, Jared and I, with these awesome dudes behind Metabase, Samir Alsakran and Tom Robinson.
So, fellows, welcome to the show.
Thank you.
Thank you, guys.
And, Jared, what do you think?
Are you excited?
I'm very excited. metabase recently launched
made a splash yeah and uh this hit my radar because frankly because of tom
i'm so cool i know right well thank you first question how did you get so cool
uh that's that's a very good question i had no idea i don't have to answer that put you on the
spot but yeah i think uh tom was one-third of 280 north yeah which uh made a splash back in the day
i'm not sure what year that was anymore but with around 2006 i'm gonna guess okay we company started
around 2006 we publicly launched 2008 there you go 280 North, famous in the open source community
for Cappuccino and Objective-J,
which many people thought was brilliant.
Other people thought it was crazy.
I thought it was a typo.
I thought Objective-C wrong.
I'm just kidding.
But I happen to be one of those people
that thought it was pretty cool.
I think 280 Slides,
which was basically keynote inside of a browser, um, way back in 2007, 2008 was quite the tech demo and showing off what
cappuccino could do. And yeah, I went into it. I was, I was writing some cappuccino and I actually
didn't know objective C, which made learning objective J very difficult. But for those who
don't know, objective J was, well, Tom, why don't you explain what Objective-J is?
Yeah, so Objective-J was sort of a language extension to JavaScript.
But sort of stepping back to the reason why we did that
was we saw these cool web applications being built by Google
and mostly Google back in 2000
yes five five or so um gmail google maps that kind of thing and we wanted to build those kind
of things and uh you really had to do everything from scratch uh there wasn't really a full-fledged framework, sort of analogous to Coco.
So we, and we had been Coco developers,
so we sort of took a lot of the ideas from that and built this framework we called Cappuccino.
And at some point, we decided it might be cool
to have sort of a language extension
that gave us some of the things
that Objective-C gave you on top of C,
but put it on top of JavaScript so it could run in web browsers.
And so it added things like modules and classical inheritance
and that kind of thing.
Right, and somewhat famous in the open source community
for its divisiveness.
Yeah.
But no doubt interesting what it allowed to produce.
And then 280 North, eventually you guys sold correct
yeah yeah so we we worked on cappuccino for a couple of years uh we started working on some
developer tools around cappuccino and um we uh ended up being acquired by motorola in 2010, um, to work on similar kinds of things there.
There you go. So 280 North, no longer a thing, or at least consumed by Motorola. And then,
you know, you start to ask yourself over time, what happened to those guys? Where are they?
And I think I had followed Tom on Twitter. Um, then all of a sudden outcomes metabase. And he,
I think you said, if you've been wondering what I've been up to lately,
this is it.
And so that was kind of the genesis of this call.
Also, we had a few people,
Changelog members chatting about Metabase on launch day
saying, oh, we got to get these guys on.
And here we are.
Here we are.
Here we are.
But let's learn a little bit about Samir.
Samir's CEO.
Tom, are you CTO?
No, our CTO is Alan.
Okay.
He couldn't be on today.
Fair enough.
So Tom's an engineer.
Chief Robber Rouser.
Chief Robber Rouser.
I like that.
Samir, why don't you give our audience a little bit of introduction to who you are and where you're coming from?
I guess I've been coding since I was in middle school.
I spent a lot of my earlier career just dealing with some of the crazier sections around machine learning, engineering.
I think my first couple of jobs all revolved around ML.
And at some point I started doing Hadoop before Hadoop was cool. And a couple of years into that, most of my life was spent either cleaning crappy data, pushing crappy data around or displaying the net results of pushing crappy data around.
And so it became less about algorithms, more about just presenting information to normal human beings.
I think that's been the main theme of the last couple of years of my life.
Interesting. How did you find that? Like, you thought you were going to be doing more advanced algorithms, but was it your exposure to like real business problems where you
realized it's just a bunch of crappy data and now I have to maintain it? I think a big part of it
is that most companies, most teams, most organizations are at a much lower level of Maslow's hierarchy of data needs than they think they are.
And then what it really comes down to is most people just want to add up some numbers and show a pretty picture to someone.
And so now you kind of get on board.
There's all this talk about all the crazy things that everyone wants to do. And then when you actually sit down at your desk and realize, well, none of the stuff that lets
you build the crazy stuff, the crazy things is actually around. And so there was this definite
moment of moving from, I guess, my first thing I did at my first real startup job was just
optimizing memory patterns. And so it was, hey, here's this recommendation algorithm.
It's running on a single core.
And I think it was four gigabytes of RAM back then.
And I spent the first three months
just trying to stuff more training samples
into that four gigs.
And then Hadoop came about and it was more,
I switched gears from being kind of a memory
sort of hash map tweaker to just adding up numbers for label reporting.
And so a lot of the sexy stuff that Hadoop unlocked was just being able to add up, you know, plays of who played which track for how long, faster and better.
I think that's an interesting insight.
I have a friend here locally in Omaha
who's kind of an operational consultant.
And he's very much at the same level as you
or with many of the small businesses.
I think we all focus a lot on large businesses
and enterprise and corporations
with huge data systems
and many large problems they're trying to solve.
And there's thousands,
if not tens of thousands of small businesses out there that just have no handle at all on
their data and no insights whatsoever. Maybe just a series of spreadsheets on a shared
network storage that, you know, they're trying to share access to or those kind of things.
So, man, I mean, that seems like a very good lead in the Metabase, right?
Sure does.
So glad you guys teed it up for me.
Tell us, Samir, what is Metabase?
At the end of the day, Metabase is a way to take all the stuff you have lying around in a database somewhere,
whether it's a data warehouse and you've paid a bunch a bunch of money, or whether it's just a MySQL
box you have running on your desk, and let normal human beings get at it in the sense
that for most people aren't engineers.
Most people, and even if they are engineers, they don't necessarily want to write SQL all
day.
At some point, you just get tired of banging out yet another view of a data with
a chart attached to it. And so the primary kind of purpose of Metabase is just to take a table
or a database and then render it in a real way. And then also to let someone interact
with that data and that visualization and kind of get to what they're looking for.
And at least on its face, it's meant to feel more like clicking through something and kind of exploring as opposed to I'm showing up, I have a question, I know exactly what I want, and here are the parameters.
It's more that, I mean, I could say most of my
professional life, I've not known exactly what I wanted when I sat down. So even in situations where
there was a very concrete request from someone, or we knew what we're building,
when you actually sit down to write the queries, it's like, so I think I want to see what's in
this table. I want to do a select whatever limit 10. I want to futz around with it. I want to see what's in this table. I want to do a select whatever limit 10. I want to futz around with it.
I want to see what the various values are.
I don't remember what this field was called.
I don't remember whether this was a string or an enum.
And rather than having to look all that up or memorize it
or just spend that first half an hour with a bunch of selects,
Metabase is really just created to let me sit down
or let someone who is not nearly as technical sit down and get to the kinds of questions they want to ask.
I know when we first looked at Metabase, I was thinking, okay, what is the purpose of this?
Because on one side, it's like your tagline is an easy way for companies to ask questions and learn from data so i was wondering if it was like a quora thing you know that was open sourced or was it something you pointed at a database
so you seem to kind of answer that in a bit of a way yeah i think we're still struggling to kind
of describe what it really is um most of the vocabulary in the space has been overloaded and
made almost meaningless so like we're analytics for business intelligence we're reporting
we're data access we're i don't know and they've been thousands of products that do fundamentally
same thing we're doing which is take a database and let someone visualize it and look at it and
play with it um but yeah so like i get i get the I get your confusion about the word questions, and I don't think we've found a really good way to describe fully what we are.
Yeah, I thought it was going to be like, you know, open it up to the company if you've got questions, very core-like, you know, internally, so to speak.
And I've seen some of those come and go, and I was like, well, is that what it is?
But then as we dug deeper, it was like, okay, it seems like you pointed at a database.
So you can, you know, to jump the gun a little bit,
we have several different ways we can play with it.
And one of the ways is if you're on a Mac,
you can download sort of a wrapped version that's just for play only.
I guess maybe you can do some personal production stuff,
but it's not like collaborative.
But you can point it at a database locally
and start to discern some of the data. There's that word collaborative, you know, but you can point it at a database locally and start to discern some of the
data. There's that word again, Samir, you know,
you checking out some of your data and visualizing it and, you know,
running queries. It seems like it's, you know, a layer on top of that.
But the, the ask questions part was very confusing to me.
Point taken.
Yeah. And even once you get into it, I have been running a few things.
And of course I'm, you know, as an Apple developer, as an app developer, like queries and selects and, right, like SQL, you know, you start to think in relational models.
And so I'm immediately thinking, okay, this is a query builder, but the interface and the – I see what you're trying to do.
It's like create a new question. And it see what you're trying to do is like create a
new question and it's like you're trying to provide an insight or something but then once you start
building a question really it is like kind of like describing what you want to see and so there's a
bit of a there's a bit of an impedance mismatch between the word question and i think what's
going on but i definitely see how that's a difficult thing to describe and and where you
guys are trying to get with you're trying to simplify the cognitive space necessary to actually like construct these things so that
everybody can do it and not people like us just to jump the gun a little bit i think um when you
really get down to it like the fundamental problem we're solving is at in our current state is what
someone's mental model is of their application or their data set
or their business or whatever it is they have data about and letting them work in that model
as opposed to the model of their schema on disk. And so one of the things about Metabase is we're
also starting to kind of nudge in the direction of rather than formulating a question,
rather than telling us what you want, you just kind of poke around and you're like,
you can double click on a cell and filter by it. You can follow an ID to that records detail. You
can follow connections. And in general, the overall sort of user idiom we're going for is
I can look at the data, I can play around with it,
and then rather than having to format the question precisely,
it just emerges for me clicking around.
Yeah, I think that would be
a nice extension of that, or
perhaps eventually a replacement altogether.
It's this kind of exploratory thing.
So the first question that Adam and i started asking is like what exactly is this i think we've covered that pretty
well um the other question we had was like was why is this open source but i think that's even
assuming we have some knowledge which is you know as we interview introed you guys samir you're the ceo of metabase so this is not just an
open source project this is a company um which we're seeing more and more of this i think just
last week adam we had uh slava akhmachet on with rethink db yeah which is both a open source
project and it's also a company and it's a growing trend in open source. So maybe let's rewind a bit and just get an idea of what
Metabase the company is, where you guys come from and the business side of things.
Yeah, so Metabase was originally part of Expo, which is a startup studio in San Francisco.
I'd spent about a year and a half there. And we'd originally built out this huge, crazy
custom analytics system for all of our companies that spanned everything from collecting events to stuffing them in a data warehouse to running transformations on them.
And then finally to visualizing both the data and queries on top of the data.
And about a year ago, we'd reached the point where we definitely wanted to work on it full time.
We definitely
thought that it had legs and that it was something the community would want. And that rather than
it being something that was used by 10 companies internally, we could open up to the world and have
potentially anyone use it. And so that's kind of where it emerged from. I'd say the other thing it emerged from was just I've wanted something like it for about seven or eight years now.
And every couple of years, I poke my head out of the ground, look around, check out the usual suspects in the open source BI world, try to install them, hate the process, and just write my own query builder or add inventory planner or customer record lookup or something of that sort.
And so kind of jumping the gun to your question of like,
why is it open source?
I think one of the starting points is just,
I think there should be something like it
in the open source community and the ecosystem.
And had someone else built it three or four years ago,
I probably would never have started on it,
but it just feels like something that's missing
and something that I've always wanted.
On the business side of things,
I think we're still figuring out exactly how that'll play out,
but the general sense is we will be offering a Metabase itself
for free, open source, forever.
It's production grade.
We're never going to hold anything back.
And then the things around the usage of Metabase in a company,
we'll start to charge money for.
Okay, so we actually have a tweet from probably, Jared,
one of the fellow ChangeLog members that you mentioned,
Justin Dorfman.
He asked a question on Twitter, just tweeting to you, Tom,
and then at Metabase and said, looks
awesome.
And, you know, in reference to Metabase, came with a try it out.
How do you plan to sustain it?
So you seem like you answer that to a degree because his question was, will there be a
pro version?
Now, Jared mentioned that sort of the way that we've seen more and more companies like
RethinkDB or others create a open source version and a supported
version or a pro version that's on top of it that's, you know, much more robust. So is that
something we could talk about here today? Do you have a lot of details around that?
I mean, we have a couple rough prototypes we've played around with. We have a couple of themes
we're exploring that characterize it less as a pro version that's somehow better than the open source version and more the supporting scaffolding
that lets you use it in big, hairy, complex places. And so there's lots of things that most people
don't really care about until they do. So like compliance or data governance or auditing who saw
what or maintaining institutional knowledge across 10 years' worth of analysts
and being able to disseminate that.
And while that's something that Comcast would pay money for, it's unlikely that someone
who does a Git clone or eventually an app get would ever care about.
And so as usage at a company or someplace that is commercial takes off and you go from having 10 people on it to 20 analysts and 100 end users, there's a lot of problems that emerge that we will offer solutions for that will charge money for.
You mentioned that if there was an open source version out there, you probably wouldn't have done it.
Maybe it's an obvious question, but why open source?
What makes sense to make Metabase open source?
What's your plans for open source?
In some way, it's just how I think this kind of software starter BI kit for most companies as being the same class of things as
WordPress or Nginx or an app server or, you know, UWSGI, where it feels like such a basic component
of most modern stacks, that it's kind of weird that there isn't an open source starting point there. And so in some ways, it's kind of ideological.
In some ways, it's just a sense that
the entire data infrastructure ecosystem is all open source.
Or sorry, the part that I care about,
the part that I'm engaged with,
and the part that I've worked in has been open source.
And I both want to contribute to that commons
as well as just my own belief
that a better product will result at the end of it all.
All right, well said.
Well, it's time to take a break.
On the other side, we're going to talk about SQL, how that plays in, and what you all might be thinking.
That's what SQL was made for.
So we'll be right back. They can be used towards education and professional development goals. You can spend this money on anything you want from coding boot camps to online programming courses, textbooks, you name it.
You also get one-on-one mentoring, an entire year of weekly one-on-one mentoring with a TopTile senior developer.
And this person is going to help you with topics like project guidance, choosing an academic or career path, and also preparing for interviews,
head to toptot.com slash scholarships to learn more and also to apply.
All right, we are back again with Tom and Samir,
diving deep into what Metabase is.
For those of you out there listening along, got questions like this,
you may be thinking that that's what SQL was
meant to be and what it should solve so uh Tom Samir I'm not sure who wants to take this but
it seems like this is some of what uh SQL was meant to solve and I get it a better user experience
you know maybe even platform agnostic web UI more flexibility more flexibility, things like that. But, you know, why is this better than plain old SQL?
So I have a long rant about that, but Tom, if you want to chime in first, maybe you can.
Sure. Yeah. I mean, so SQL is fantastic for developers, for anyone who's, you know,
able to parse and really understand the syntax of SQL,
which a lot of us probably take for granted how easy it is to use.
If you're familiar with programming languages, it's not difficult to pick up.
But if you're not, it's just a lot more difficult to format everything correctly,
know exactly what you're supposed to say.
And so Metabase offers sort of a more graphical way of expressing
a lot of the same types of things and more powerful things as well.
Well, Samir, you said you had a rant.
What's your rant?
So I think it's interesting to look at sql in the context of
the 70s when it came out and i and there's kind of this you know every five or ten years there's
always some new citizen bi movement or product or marketing campaign and if you look back and
think about what it was like to write database access modules or code or just queries
before SQL, you had some variant of assembly language or C and you were hitting DB or DB2
directly. And so when SQL came out, it's kind of in many ways a bombshell in the sense that it
looked like English. Normal human beings could probably understand it in a couple of days.
And if you were smart and numerical and just at all inclined,
it's not that hard to pick up.
And I'd say that, you know,
even it was a categorical huge success.
And I can't say enough good things about SQL overall
and just the RGB mess.
But what else has happened is
there's been just these waves of accessibility
where you start out with just, I'm going to write some crappy assembly code, then to I'm going to write SQL.
And then you get spreadsheets and spreadsheets are magic.
And Excel is kind of one of those transformative technologies in our world.
And then you kind of get into the world of like maybe access counts and then you get tableau in the mid 2000s and in each of
those there's been this significant widening of the pool of people that have creativity and
questions and honestly just like are informally what they want to know and are the people that
should be asking the underlying questions and this lets them do that as opposed to requiring
them to also learn how to be programmers yeah it does seem to remove the barrier too to be you know in quotes a programmer a developer
someone who is familiar with or even comfortable with it and i can think of many people who are
have creative minds that you're like man you should be in these meetings with us ask these
questions because that's a great question yeah it seems like you're wanting to put a great tool in their hands and some and some of it is just um even if you are a program and if
even if you are inclined in that way like and i i mean i don't know how good i am at sql and all
of a sudden done i think i have at least a working knowledge of it but i've definitely
hung out with people that are much more proficient at it than I am.
There's still days when you don't want to type or you don't want to think in that way.
Or, you know, if you're fundamentally in a creative headspace,
you're thinking about what people are doing and how they've done it.
You know, whether it's dropping down MapReduce,
whether it's writing SQL, whether it's, you know,
writing R scripts or Python scripts,
there's days when that's not how your brain's wired up.
And I think it's useful to be able to approach problems
from different directions using different tools.
And so like every once in a while,
I'll fire a Teplo or I'll pull up R or MATLAB.
But there are days when you just want to see
a pretty picture or a graph and you don't want to deal so right
and the flip side of this is given that most of us don't work in isolation there's other people
in the room that are doing all kinds of stuff that is hopefully useful um you don't necessarily want
them banging on your door every time they have a question i i can think of things like too where
you're in the you know you're in marketing you're or product development and you don't feel like going and messing with the people in ops or infrastructure
or somebody that's got way more things to do and to answer your questions about data, basically.
Yeah, because they have stuff they're doing in real life, too.
We all have jobs, presumably, or we all have things we do for fun or passion or to pay the rent.
And usually there's only so many hours in the day.
And if rather than having an ops person or a DBA spend 30 hours a week fielding all these kind of recurring ad hoc.
Internal support questions even, it seems like.
Precisely.
You know, like, how do I do this?
Where's this data coming from?
Or what does this field mean?
It's like, what does is underscore test underscore account mean this week?
Right.
That's my favorite rant, actually.
Maybe it would be clarifying to the listening audience because they can't see it.
They can't feel it right while we're here talking about it. Could one of you kind of verbally go through what the user experience is of
asking a question and kind of formulating some things you can do in
Metabase?
Can you kind of walk us through what the UI looks like and this user
experience looks like?
Sure.
I could take that.
So you load up Metabase.
If you haven't edited a database,
you can add all the connection details for the host name, port, password, all that stuff.
And then basically just click create a new question or ask a new question.
And it presents you with this sort of graphical editor for expressing queries.
You first select the database
that you want to ask a question about,
and then it gives you a whole bunch of options
on filters, aggregations, sorting,
a lot of the same kind of things
that you could express in SQL.
But we try to limit your choices to things that make sense
and give you special interfaces for different data types.
So if it's a numerical column, you can filter by greater than equals,
those kinds of things.
If it's a date or timestamp, you can filter by a special date picker.
And then you can aggregate the results in various ways, like counting sums of certain columns,
grouping by different columns. And so the idea is you start by picking a table, maybe you just view the raw table to
begin with, and then you can pick an aggregation, view it, aggregate it some way, and then add
filters and that sort of thing as you sort of decide what direction you want to go with the
query. And for somebody who's kind of getting antsy, I've got to ask the question, is it read and write only,
or can you write back to it, or is it just read only?
It's read only.
All the connections to the databases are read only,
and if you want to create a special account on your database that's read only,
we recommend you do that as well.
About 10,000 people just wiped their brow.
They had some sweat on their brow and they're like,
whew, nice.
Yeah, you probably don't want to be issuing queries
against your production database anyway,
so you might set up a replica or something like that.
Yeah, I guess because that would be kind of shared traffic,
internal traffic, and then actually real writing
and reading from the database would make some sense.
I also have some notes that you can still do SQL when you need it. Can you talk about
what that user experience is like? So if you're, if you're doing these questioning and you're kind
of diving into your data, if you do have that kind of a superpower, like, uh, being able to
write SQL and query the database, how do you access that piece? Sure. Yeah, so in this query editor, when you start a new question,
there's a little toggle button in the top right-hand corner
that you can flip over to SQL mode.
And yeah, we just give you a fairly basic SQL editor,
but it does have auto-completion for all the various operators and table names
and that kind of thing.
Is the hope with that feature to get both sides of the fence using the same tool?
So if you're, if you got the superpower to be able to do SQL and write SQL, you're in
the same thing that the other users are in, is that the idea or is it just simply to,
you know, give quick access uh so i you know it started we we we have that in there because they're you know we're
trying to uh create this this editor that can express any sort of query you want within reason
um but at least especially in the early days we we couldn't express a lot of the queries that our users wanted to ask.
So having the SQL editor allows you to drop down into SQL to express more queries.
And some people are just more comfortable with SQL, and that's fine as well.
So once you save a question, you can add either one to a dashboard and that sort of thing.
It doesn't matter if it's a SQL query or built with a graphical editor.
One of the things it lets you do is, for the kinds of questions our interface can't express,
it lets someone with a secret power do it for others, and then they can reuse that.
So most people, even if they can't write SQL, are very comfortable taking this wall of text and replacing 714 to go from weekly to 14-day averages.
And so people are willing to edit and remix them, but they wouldn't have the ability to create them from scratch.
Tom, going back to something you mentioned earlier, it was just when you're actually asking the question that the process of asking gets smarter based on the actual data fields in the database.
Does association detection require the proper foreign keys or is it smarter than that?
So we try to detect as much as we can based on foreign keys that you have set up and the field types and all that. And if we don't do a perfect job,
you can edit all the metadata that we've captured
about your schema in the settings page.
So yes and no.
And being a little more in the weeds,
even if something doesn't have constraints,
you can still use them in joint statements.
And so if you go in and manually say,
this field is a foreign key to that table, then
all of our kind of relationship or has one relationship aspects of our query builder
still work.
So, and we're trying to get smarter around auto-detecting, things like that, but it's
an ongoing process.
Can we talk about uh database support you got uh support for my sequel let me go back to the list because i didn't have
it and i'm bringing up that topic and i'm not perfectly ready to ask the question but you got
uh my sequel postgres mongo and then i had to ask jared i'm like hey what is redshift because i'd
actually never used that so i had to go look that up. And it's actually pretty cool.
It's from Amazon.
So if you didn't know about Redshift, Amazon makes it and it seems pretty interesting.
So I don't deal with big data enough.
So that's why.
Let's talk about the support for various databases.
Obviously, MySQL makes sense, Postgres, Mongo.
What's the process to support that from a technical standpoint?
So we have a query language that all of our queries built using the interface
are serialized as. And then we have a separate step which converts those to either SQL or
the Mongo query language or whatever else we support. And so adding additional drivers is
what we call them internally, is just creating another driver
for a specific target, either SQL dialect or a completely different database driver.
So we had Slava Ahmacek on recently, RethinkDB,
so if he wanted to support Rethink and Metabase,
it's simply forking, writing the own driver, and boom, goes to Dynamite?
Yeah.
That's awesome.
If you know a guy who knows a guy we'd
love it if they would help us out with that well we do know a guy but i'm sure maybe the guy's
listening so uh just do it slava yeah and in general like we're we're committing to writing
a bunch ourselves um but the primary determinant of which ones we write is just what people ask for
and so we've been funneling people
to the GitHub issues in question
and just trying to get a gauge for,
of the folks that have found us,
of the folks that are using us, what do they want?
And so, for example, we're working on both SQL Server,
which apparently a lot of people wanted,
which I didn't expect, as well as Redshift drivers.
And there's a couple other open issues for just off the top of my head, Elasticsearch,
BigQuery, Spark, Presto, maybe Impala.
And just if enough people want one of those, we'll do it.
But we don't want to just write 50 drivers for every different dialect without having
there be someone who cares enough to complain about it and just cast their vote.
Good stuff.
Well, it's time for another break.
When we get back from this break,
we're going to dive deeper into getting started with Metabase,
moving on for the Mac app and getting into production.
So stay tuned.
We'll be right back.
If you thought Harvest was only about time tracking, check again, fast invoicing and payments. We'll be right back. them in the harvest app you can also connect favorite tools like slack and use chat commands to start and stop your timers head to getharvest.com and start your free trial and once that trial is
over use our code changelog to save 50 off your first month we're back and we still have these
two awesome fellas thomas amir with us and jared we're dealing with a little tiny bit of
lag with jared so if for some reason i'll edit this good but but jared you sound beautiful man
i love it sound great edit it good man edit it good edit it good you know and i before the break
i said let's come in talking about platform and you know how we can get this production but i want
to ask one more question real quick that's more on the general side before we go into the deep tech side um you know we're in the days of slack real-time communications things like that i'm just wondering
how these kind of things play together when you actually communicate with your team and you're
actually um you know to kind of dig into your data is there ever a plan to sort of do some Slack integrations?
It's funny you mention that because that's exactly what we're working on right now.
Right now.
Okay.
Awesome.
Can you talk about that a bit? What can we expect?
Sure.
So we're working on this feature called Pulses.
The idea is you pick a few of the questions you've already asked and saved,
and up to five questions, and you can send those out to various channels.
The two we're supporting initially are Slack and email.
And so you can pick five questions, pick a channel or two channels, and pick a schedule.
And we will automatically run those questions and send out the results to the channels that you selected.
I can think of how that's going to be so useful.
I mean, for one, taking all this data knowledge and putting it in the hands of people who are creative enough to ask, you know, these creative questions, as Samir mentioned earlier.
And now you're allowing them to craft questions that dig through this data and sort of snapshot it back to the internal team, I guess, anywhere.
Slack is supported, really.
Even open channels.
It's just been one of those things I've seen at every single job I've ever
had,
where at some point someone walks up and wants to find the email.
Yeah.
So it just kind of,
it's the generalization of that.
And then that person spends so much time like crafting these emails for
people just to keep them updated.
And that's just,
that's just dumb.
I'll do that.
Something like this makes me want,
you know,
maybe even a step further.
And I'm wondering if, you know, perhaps these thoughts, you probably had these thoughts for sure.
But it's like, you talk about asking questions, but then we structure a query, basically.
It's almost like we need to take it to the next level where you can actually have maybe categorized or formalized question styles that you can actually ask a question. Cause once we start dealing with like, you know, Slack integrations and, and, you know,
send me an email every day, what, well, why don't I just be able to ask this thing a question?
And it just gives me the answer.
Just today I was, I was wondering if there's a Slack bot way of saying, you know, how many
people are on the website right now?
Um, and it's like, I don't even want to go take that, turn it into a query and then,
you know, do that extra step.
It seems like even with this tool, which is definitely, you know, lowering things for
many people to have access to data that wouldn't otherwise, it seems like, you know, you could,
the Siri, the Siri vacation of querying.
Um, if I could just move with a ridiculous term, it seems like that would be awesome. Like, what do you guys think about that? I like the term dude. It with a ridiculous term.
It seems like that would be awesome.
What do you guys think about that? I like the term, dude.
It's a good term.
Serification.
We wanted to start with something pretty simple.
The minimum viable thing that we could do
that's useful for Slack integration.
So that's where we're starting.
But I could definitely see us adding something like that
in the future where you can just sort of type a free form question and we try to parse it and give you the results back.
I guess that, Jared, your suggestion there assumes they have a long runway.
And I guess maybe one more question before we dive deep into the tech side of things is we talked a bit earlier about pro versions and sustainability, like how important is getting to some part where you all are making money as a
company? Does that matter? Do you have funding? Do you have runway? Are we,
are we concerned about things like that?
So we have a bit of funding and I think it'll see us through, I mean,
definitely in the next year.
We're still trying to piece together exactly what it looks like from a company perspective.
I think one of the strong reasons
we are open sourcing all of it
is we want to have a life outside of just our company.
And so while, you know,
in terms of my landlord needing me to pay rent,
it's quite important that we somehow
do make a living from all this.
I think there is,
we expect to make money in ways
that are not related to the actual core product
and the user experience itself.
How soon will we hear about a Metabase Conf?
As soon as there's 10 people
that want to get together at an open bar.
There you go.
At a city near you.
So it's meet up first, then conf next.
Exactly.
Exactly.
We can call it MetaConf, even when it's just an open bar, actually.
I like it.
And this might be a good place to plug.
Well, it's mostly a joke right now, but we're talking about creating a microbrewery.
Oh.
I forget the exact um
beer names you've come up with but tom do you remember what uh well there was a meta brewery
or meta at a beer was the name of the brewery yeah there was like actual anyway so yes coming
soon to a micro to a meta conf near you uh it kind of reminds me, I mean, it's a tangent, so forgive me, but when we were at GopherCon
this past July at the Wine Coop Brewery, which is where the after party was for 1,300 gophers,
you had to do something special, right?
So they actually had a special beer.
Jared, do you recall what the beer was called for GopherCon?
I can only recall that it was delicious.
It was delicious. That's true.
What was it called?
I don't know. I don't know. I can't remember.
That's why I asked you. But it was good.
I liked it. We're all striking out on beer names now.
Oh, man.
All right. Well, let's get to the things we actually do
know about, which is technology.
At least I think so. So, Samir, Tom,
whomever wants to take this,
take us through some of what this is actually written in.
I can understand 46% Clojure, 40% JavaScript.
What were some of the choices you had to make and why?
So it's had quite a few incarnations,
and I guess I'll just kind of rattle them off.
And if anything's interesting, we can drill into them.
So it started off life as just a big
ball of Python with literally jQuery charts in the front end. And at some point, the just brain
damage of dealing with async in the Python world just got to be a little too much. That plus we've
always had the idea of making sure that it's super easy to install and deploy.
And for all its flaws, the JVM is kind of awesome in that regard.
There's something just magical about a single file you push around,
whether it's Go or a JAR file,
but there's something just compelling about that.
And so we played around with different options.
We wrote little mini prototypes in a couple languages.
I think at one point we settled on Scala,
and we're in the process of rewriting it.
And just some of the associated brain damage for the team
was just too much, and we switched to Clojure.
And so that happened approximately January through March.
It was kind of a rolling migration.
And it's pretty much entirely in closure these
days. There was a shred of Java for our migrations framework, but that's since been ported.
I know when I installed the Mac app to play with it a bit, I had to run Java. So is that the piece
kind of lingering then to support the Mac app? So actually, the Mac app is ironically...
All right, let me back up a second.
So at this point in time,
it's a Clojure app,
which compiles down to a JAR file,
which is run on the JVM,
which is the Java version machine.
The main impetus for the Mac app originally
was that it was a pain in the ass
to install the Java,
either the JRE,
which is the Java runtime environment, or the Java development kit on a Mac. And having watched a couple of my
analyst co-workers or ex-co-workers or friends try to do it, it just became more and more painful.
And so the original vision of the Mac app was just bundle the JRE with the actual JAR file
and slap a web view on top of that.
And it's kind of grown a little from there.
So what you're seeing is just the JVM spinning up,
or sorry, the JRE spinning up in that separate little window
you see with like core or something up.
Yeah, yeah.
I'd actually closed it.
I was like, I don't want that running.
And then Metabase crashed.
Yeah, you kind of want that.
It's needed.
It's important.
Yeah.
If I could just go back a quick second.
Sorry, Tom.
If I could just wind you back to something you said there, Samir, the switch from Scala to Clojure script.
You said that the problem was all the associated brain damage.
Could you just unpack that for us?
So I've kind of blacked out a lot of that portion of my life, to be perfectly honest,
but of the bits that I recall, and it was, you know, obviously I had relative little to do with
that change. It was Alan who Tom mentioned and Cam, another one of the backend guys.
So one of the core sticking points was just, A, the fact that Scala, most of the Scala SQL DSLs are strongly typed, which if you're generating dynamic queries is exactly what you don't want.
Because there's no way in which you can actually construct a type system that will know what some arbitrary user-created query will have.
The other bit was just, it just felt, I don't know how to describe it. It just didn't
feel fun. And when Cam essentially just said, Hey, we want to do closure and wrote a prototype
over a couple of days, it got him to where about a week and a half worth of dedicated scuttle
coding took us. And so that was like maybe a day or two of actual disclosure work by him at that point.
And so, you know, kind of went around and around on it for a couple of days or I think
a week or two, and eventually just felt like a more natural language to express all this
in.
And I briefly mentioned our query language and how we kind of compile or transpile that to SQL or Mongo.
And that looks and feels a lot like just straight stream manipulation, which I've always found easier to do in a Lisp rather than Scala.
Yeah, I'd love it if you can dive a little bit deeper into the query language and kind of talk about what that's all about.
All right, so I'm at least like a decade out of my compilers class,
so if I misspeak, I hope no one flames me too hard.
But what we tried to create is a language you can express
a large set of interesting queries in.
It's kind of like SQL,
but one of the primary differences
was it's meant to be composable.
And so you can do things like save snippets
and pass them around,
and that each snippet or subtree
is pretty much uniquely determined.
And so it's really hard to slice up SQL
and then pass it around.
It looks and feels a little like the AST you get if you parse SQL.
And so a lot of just my mental model for this comes from back in the day when I was doing
genetic programming, where you do tree manipulations and you express programs or
designs in trees and you futz with them. And so we have essentially a query language that starts off with here's a bunch of operators,
here's the various clauses in a query,
and here's ways to reference fields,
to reference eventually macros,
to reference just aggregations and constants and operators.
And that tree then gets passed to Corma
or passed to the Mongo driver and executed.
Very cool. Well, it sounds like the backends had a lot of work done to it.
Let's hear about the frontend.
Tom, it sounds like that's your playground with your history in building frontends.
Can you tell us how that's all put together?
Yeah, sure. So when I joined, we were in the process of transitioning from an Angular front end to React.
And it's pretty early on in that process.
Started with just the query editor being built in in React.
And it's actually pretty easy to drop in little pieces
of React into a larger Angular application.
And since then, we've ported more and more of the application
over to React.
And we're almost at the point where there's no Angular code
left except for the routing and some controllers.
But we would really like to get rid of the rest of that Angular code
and do complete React on the front end.
But we're not quite there yet.
Yeah, it seems like if you're not using too much of Angular,
having that as part of your payload is something that you definitely want to yeah free yourself from at this point yeah
what about uh data transport like how's the front end and the back end talk i know there's been a
lot of uh hubbub around moving away from rest and onto these uh falcor and facebook's idea, which GraphQL. Relay. Yeah, Relay.
Thank you.
Any move in that direction?
So right now it's just pretty much RESTful JSON APIs.
But those are definitely interesting ideas that I've been looking at.
Yeah, it'd be really interesting to see if we could apply those to Metabase.
But for now, yeah, it's pretty vanilla REST JSON.
Just curious your thoughts on React in general as a person who's seen a lot of tools over the years in the JavaScript space.
I love React.
The thing I've sort of been struggling with is uh you know react is is great for taking
some data turn it into ui um but it's not it's not the whole picture uh right you know you need
you need something else to sort of manage that state um whether it's flux or something like relay
or um or what have you but we're uh we're starting to look at using Redux,
which is Flux-like.
I don't know if it's technically considered Flux,
but it's sort of a unidirectional data flow framework
that's very functional and focused on immutable objects
and that sort of thing.
So we've been using that in bits and pieces of the front end,
but we're not using it for the entire application state.
It's more like little silos within the application.
Yeah, Redux is interesting.
Actually, we just had a ping on on our ping repo which is kind of our
open inbox where people can give us show suggestions yeah Dan uh I think Dan Abramov
Abramov yeah yeah he'd be a great person to have yeah he actually agreed to come on we just haven't
scheduled it yet so look forward to that everyone and um let's get back to databases again,
because we have Postgres, MySQL, Redshift,
which I think is like planned, but not yet supported.
H2, which could you explain H2 for us non-Java people?
H2 is just an embedded database in Java land.
It's morally equivalent to SQLite in many ways.
Okay.
So it's there just for a nice default, basically?
We use that as our default database for Metabase's own data,
so you don't need to set up Postgres or MySQL.
Very cool.
And anything else technology-wise that you guys are using in part of your stack that
we haven't touched on?
I see that you've got an Xcode project in there.
Obviously, there's a little Mac app, which appears to be a web view, which makes a lot
of sense.
Anything else that you're doing technologically that's noteworthy?
Yeah, I mean, I think there's some other interesting stuff.
I'm not sure exactly what it is off the top of my head. So switching back in, there's some interesting things we're hoping to really push those as far as possible.
At some point, my pipe dream is I load it up,
I point it to a data warehouse,
and it automatically knows everything that I could tell it
about the underlying data model.
Obviously, that's years or decades away,
but that at least is the hope.
Rather than having a sort of pointed database and spend hours or days restructuring data,
annotating things, and just moving it from like, hey, it's kind of cool out of the box
to this measures everything that I want it to measure.
One more question before we break is, we mentioned um you know the thing about meetups and
comps and we've talked about why metabase is open source but even inside open source there's
different kinds of open source and i'm curious um what kind of open source project you want this to
be one hint that you gave is that you were very excited if somebody would submit a rethink db
driver um are you hoping this becomes a large community effort,
or is this an open source product that, you know,
Metabase employees are going to work on in the open?
I think initially it's going to be the latter.
And part of the reason is we're trying to be really meticulous
and thoughtful about the front end,
and specifically on the design side,
and making sure that what
comes out of the process looks and feels like an application that you use today.
And one of the things that the open source community has had mixed results in is just
creating end user interfaces.
And so at least on the front end of things, we're going to be pretty OCD and pretty meticulous
and just very ordinary about that.
And so, you know, while we definitely would love people to help out, we want a vibrant community.
We're primarily we're in the open source because we want to give back and not so much because we're looking for contributions or fishing for people to help us out.
OK, actually, I mean, I agree with everything Samir said.
I think there are very specific, you know, integration points that would be perfect for
open source contributors to help out with.
And I mean, drivers are definitely one of them.
I think we don't have a great API for it yet, but this pulses thing that we were talking about earlier, different integrations with different external services and maybe eventually different charting be great for us to sort of document and expose
very clean APIs that external developers could use to extend Metabase.
Very cool.
Well, let's take a quick moment here from another one of our sponsors.
On the other side of the break, we will talk about getting started, how you can actually
get Metabase up and running today, pointing at your company's databases,
and we will also ask our closing questions.
So stay tuned for that, and we'll be right back.
DigitalOcean has expanded their reach even further into Canada's startup
and developer scene with the launch of Tor1.
That's T-O-R-1, their first Canadian data center in Toronto.
Head to digitalocean.com and use the code CHANGELOG to get a $10 hosting credit when you sign up.
Again, digitalocean.com.
Use the code CHANGELOG to get a $10 hosting credit when you sign up.
All right, we are back talking about how do you get started with Metabase.
So I'm out there, I'm a developer or an interested person with some technical chops,
and I want to get Metabase deployed maybe on some personal projects or maybe for my company.
Take us beyond the Mac app and just the playing with the dummy data.
How do you actually get this thing set up and running in kind of a production capacity?
So our primary production platform these days is Elastic Beanstalk on AWS.
In theory, anywhere you can run a jar, you can run Metabase.
And so depending on what world you live in, we also have a Heroku deployer, which is very functional, but I wouldn't say it's quite production-grade yet.
And so if you're actually thinking about doing it for real,
I'd say either use the jar,
pass in your SSL key store,
or reverse proxy it and terminate there,
or set it up on Beanstalk. And we have both a button that will pre-fill
a lot of the Beanstalk settings for you,
but that'll take something in the neighborhood of 15 to 30 minutes
to kind of get that up.
And if you just want to play around with things
without putting in that much effort,
you can just download the jar,
slap it on an instance or server somewhere,
and just do a java-jar
at metabase.jar and then log into it
on port 3000. And it should
quote-unquote just work.
And where do you go when it quote-unquote doesn't just work?
Where do we go for support or help or what have you?
So Twitter always works
at Metabase um we also have
at discourse.metabase.com a forum for our users to kind of chime in and talk shit or get help
and then if it's something that you think is actually a bug or a feature request and get
up issues is a place to get in touch with us very. We'll be sure to link all those up in the show notes.
This is episode 182, by the way,
so if you're not listening inside some sort of podcast client,
go to changelog.com slash 182 for the show notes.
If you're in a podcast client, well, you probably know where the show notes are.
Very cool. Well, let's briefly touch on the future.
I think we've done that a little bit.
I think the Slack integration is exciting. I think we talked far future where I can just shoot you a question and Metabase answers them like a genie. What else do you have? What are you planning? What does Metabase look like in three years? What does it look like in five years, we expect to build just the standard open source BI platform. We're currently very
useful for companies that are in the five to 50 person employee range. And we're just trying to
build the foundation for data access just for all companies in the three to five year time frame.
So, you know, there's nothing,
we don't lack for ambition.
We don't lack for kind of crazy pie in the sky stuff. I mean, I'll throw out one of my pet projects
is just trying to give people a really simple way
to do graph traversal.
And so it's not something that most people talk about
in the concept of analytics,
but there's a lot of really common, really useful,
really natural questions to ask
that are really just walking a couple edges in a graph.
And so having the ability to do things like,
oh, I want to see who complained about this album last week
and how do they feel about these other albums how did those albums they're
complaining about do and other reviews and it's the ability to kind of take those questions which
in conversational english sound very innocent but if you try to encode them in sequel it would
rapidly get pretty annoying and make that something that's one or two clicks away awesome
i think i have time so i'm gonna i'm to pull a quote that I got off of Twitter.
I think this was a fellow by the handle EDW519,
a very interesting developer with lots of interesting little quips.
One thing he said, which I thought of when we started this call,
is he tweeted, no one would pay seven figures for a very fancy report writer,
so they had to rename it business intelligence,
which I thought was kind of funny and true to a certain degree.
So that got me thinking, if Metabase is successful,
I want to hear your thoughts on perhaps eliminating an entire job title
inside many organizations.
This is perhaps a little inflammatory,
but I don't think jobs ever disappear.
I just think that as time opens up,
we find new and creative ways to fill them.
And so what I think will happen is that, you know,
the roughly 20 to 40% of an analyst's day, which is fielding these ad hoc
questions will go away, but a, they'll have more time to do the stuff they actually enjoy and the
creative sort of deeper explorations and just the more intricate, um, the more intricate question
and hypothesis testing and exploration they do. The flip side of this is,
I don't, in most places, it's really hard to get numbers right. And so if you're, you know,
one developer with a database that backs an app, and you want to create a few graphs for yourself,
it's really easy to sort of say those are the numbers that were cool. If you're in a complicated
place with
dozens of different data sources, with different views of the same data in different places,
different roll-ups, a lot of what sort of business intelligence analysts at big companies do is not
create those reports or create those dashboards. It's trying to figure out why this revenue number
or this DAU is not the same as this other report.
And I don't think that's ever going to go away.
We hope to make that simpler and easier, but fundamentally there's just a lot of human labor involved
that we're at least one
generational AI advance away from being able to tackle
or even hope to tackle.
Yeah. No, I like that perspective perspective you're not replacing people you are
taking people and making them more effective in what their role is and allowing them to free up
time that they would be doing manual labor and asking and answering more interesting questions
um and for those who were just dead weight you you know, y'all are just dead weight. So you have to find something else to do.
Well,
it's,
it's true.
It happens.
Jeez,
dude.
Yeah.
That's what they keep saying.
You know,
the pretty soon the computers will just write the programs for us.
Um,
and we'll all keep hoping.
Yeah.
And it's like,
well,
I'll just go get a margarita at that point,
I guess.
Okay. Any other salient it's like, well, I'll just go get a margarita at that point, I guess. Okay.
Any other salient points,
uh,
Adam or,
uh,
Samir or Tom,
you guys would like to make before we switch to our closing questions.
Um,
just go download it.
Tell us what you think,
complain,
um,
let us know how to make things better.
I have one side note before we
continue and it's it's just because i have to ask because i put in the notes and i'm just curious
if by any chance you borrowed from the playbook of wordpress when it came to the user experience of
connecting to a database with metabase um i think I've had WordPress in my mind
for a large part of the journey,
but honestly, I've never used WordPress that heavily,
but there is a certain magical instant gratification angle
that they've worked out.
And in the times that I have had to set up WordPress instances
for other people, it's been remarkably pain-free compared
to other things I've done.
So there's always the intention of providing some sort of instant gratification in like
under five minutes that we definitely were inspired by WordPress on that front.
It seemed like that was the, if it wasn't on purpose, it seemed like that was the if it wasn't on purpose it seemed like maybe it was
by happenstance but uh just the the process of like there's a database either created by you
recently that you're pointing to or one out there that's you know obviously there you've got
credentials and you're pointing it to and it just seemed very familiar when i was reading those docs
and i was like i gotta ask that question um i don't think any of us have used WordPress lately so if it was something we again were inspired by
it was something very subconscious totally and it wasn't meant like oh you stole that it was just
more like because because you're right like the the instant gratification of setting up WordPress
is pretty painless it's been a while since I've done it too.
We use WordPress here at the changelog for our site, but, you know, it's been years since I've set up a WordPress install.
But I know the process and it seems similar.
All right.
Now we're going into the closing questions.
Which one do you ask first, man?
Hero, Radar, or what?
Yeah, I think we should ask programming hero because it
gives me an opportunity to mention we just launched season two of beyond code true programming who is
your programming hero is one of the feature questions on beyond code uh season two now out
there check it out beyondcode.tv space city js for those of you who are out there in houston
you can now go there and watch your Beyond Code interviews and find out who your programming heroes were.
So quick shout out to that.
And now, fellas, we'll turn the question on you.
Let's toss this one to Samir, and then Tom can take the next question.
So, Samir, who, if you had to name it, would be your programming hero and why?
I mean, on some level, I've always wanted to be Jeff Dean.
Jeff Dean, please explain, explain.
I'm sure I'm going to get a lot of this wrong, but he was one of the four programmers at
Google.
So he, and I'm not sure exactly how credit is distributed, but he had a piece in a lot
of the foundational technologies that made Google Google.
So MapReduce, BigTable.
And just by all accounts, he's a really nice guy, really, really humble, really good to talk to.
And has had his fingers in some of the biggest projects and some of the most impressive things to have happened in the last couple of decades.
Well, it's no wonder why I'm jumping the gun, but in your email,
you mentioned TensorFlow, which is also credited to him or to some point.
Yeah. I'm not actually sure exactly if worked on that. I know Vincent and I'm going to mangle his name despite the fact that we're,
I know the guy,
has worked on it.
Yeah, I'm not sure who worked on it.
I think it's very interesting.
I think there's a lot around the open source ML world that I've been following for a while,
and there's a lot of reference implementations.
There's a lot of execution platforms.
One of the things I really liked about it was the fact that there is this visual kind of inspector and debugger and just kind of anchor.
And I have not fully internalized it.
I haven't run any real classifications, any real data I have yet.
But it's definitely something I'm kind of poking and prodding and staring at for the last couple of days.
That might be a little bit inside baseball,
even for our audience because TensorFlow just like just was announced
yesterday.
So it's on his Wikipedia on,
is it on Jeff Dean's Wikipedia?
That's why I mentioned it because career at Google,
it's the last one on the list,
you know,
Spanner,
big table,
MapReduce,
Google brain,
level DB and TensorFlow. So I just, I, I jumped the gun, it's the last one on the list you know spanner big table mapper dues google brain level db and
tensorflow so i just i i jumped the gun but i assume that may have been another reason why you
chose i didn't even know that but yeah i mean that that only makes it more impressive in my eyes
this uh look just tensorflow the new machine learning uh framework that google announced
at the end of 2015 uh looking at their GitHub, there's only two contributors,
a guy named Keevman and somebody named BRV,
but those could be...
This whole thing may not have been on Git eventually or originally.
Anyways, now I'm getting into the weeds.
Do we want to give the hero question to Tom too or no?
Actually, Jeff Dean was on my list as well but
um yeah uh john carmack would be another one the classic uh game yes yes so jeff i think jeff dean
is probably unique to you guys as far as i had never even heard of Jeff, um, my fault, not his, I'm sure. But John Carmack
is kind of an old favorite lot. He's, he's the programming hero of many folks. So, um, one,
one new one and one old one there. Why, why John Carmack? Maybe self-explanatory,
but if you could just humor us, uh, I mean, he's, he's, uh, got incredible history with you know game programming as well as uh just programming
in general um yeah there's not not too much else to say so his reputation precedes him and he's
awesome long story short yeah i mean he i he he gives great talks as well um or at least
or blog posts and that sort of thing so trying to remember, Jared, who else may have mentioned John Carmack?
Can you recall?
There's been multiples.
Karen Meyer, I think for some reason she mentioned him.
I'm pretty sure he's been mentioned three or four times over the years.
He's also very kind of open and forthright on Twitter,
which is very interesting.
There seems to be very little filter between his brain and the Twitter submit box because he'll just throw stuff out there.
Anyways.
All right.
Let's talk about the open source radar.
So either of you guys, I guess we'll go with samir first but you know if you had a week and a hack and it wasn't on metabase and it was totally for fun and you were like man i've been dying to play
with this what would it be you can't pick denser flow oh uh tom what do you think give me a few
seconds to think about that um so i mentioned some of some of the we talked about, was it Facebook's Relay, Netflix's Falcor, and Omnext are all sort of rethinking the way you do client-server communications and web apps.
And those are all pretty interesting where you sort of describe exactly the data that your UI components need. And you send one big request
to the server, and it sends everything back in one request. And it's very unrestful, but it's,
you know, simplifies things because you don't need to add a new endpoint to your backend every time
you want to add a new feature to your front end. That just reminds me of something that I forgot to ask.
So while we're doing this, one thing that I thought of is, well, you got Clojure on
the back end, but is there any interest or thought of ClojureScript on the front end
just to unify your languages across the code base?
Yeah, I think that's an interesting idea.
You know, ClojureScript and Ohm is basically a React binding or a ClojureScript binding to React.
Right.
So I think that'd be really interesting.
I mean, one advantage of sticking with JavaScript is it's a little more accessible to a broader range of developers as well as designers. Designers can look at JSX and see that it's basically HTML.
So we have our designers on our team
are able to do a lot of work on components
in React and JSX and JavaScript,
whereas ClojureScript would add a little bit more overhead to that.
Yeah, that's interesting. When we had Facebook on, we asked specifically about JSX and if that was
unapproachable from a designer's perspective, because they're so used to, you know,
working with HTML and CSS as separate things and staying away from JavaScript perhaps.
But they said internally they haven't found that to be an issue
and when you think that you're just not giving designers
enough credit or something.
So it sounds like you found that to be similar
where your designers are just fine working with React and JSX
and no big deal.
Yeah, yeah.
I mean certainly they're able to uh implement basic components and
or tweak existing components um just fine so but maybe that's uh an anomaly among our designers so
well sounds like at least you met a base in facebook at least uh corroborating evidence
there all right samir we stalled for as long as we could have you thought of something besides
tensorflow that's on your radar um i think mean, this is just me speaking from my own kind of
background. I'm really curious where speech recognition and NLP libraries have gotten to
over the years. So I think if I actually had a couple hours to bang away on a weekend I'd probably just throw together something that
try to take our voices
and going back to your
idea about sort of the serification
of Metabase
playing around with that
not so much in the context of a feature for Metabase
just to see where that world has gone to
yeah perhaps proof of concept
or at least just to explore
yep
alright well Tom and Samir it's been a blast having you on the show world has gone to. Yeah. Perhaps proof of concept or at least just to explore. Yep.
All right.
Well,
Tom and Samir,
it's been a blast having the show.
Thanks so much for taking the time to join us today.
I'm sure it's got to feel pretty awesome to be a couple of years into this project and just kind of get the chance to come on a show like this and share
with the open source world,
what's going on with Metabase and get people pretty excited.
So I want to turn it back over to you though,
guys. Is there anything else you want to turn it back over to you, though, guys.
Is there anything else you want to cover before we head on out of the show?
It's been a blast.
Thanks for having us.
I've really enjoyed it and looking forward to hearing more from you guys.
And so listeners go to Metabase.com.
That's an awesome dot com, by the way.
I love it.
And at Metabase on Twitter, which is super cool.
I want to thank
our sponsors for sponsoring the show.
CodeShip, Toptile, Harvest, and
also DigitalOcean. And of course,
our listeners. We would not go to a show without thanking
you and those members
who support us and wear and rock
the Change Log tee. You are awesome.
And I owe you a hug.
But for now, now fellas say goodbye
thanks guys really appreciate it thank you thank you We'll see you next time.