Interview with Max De Marzi organizer Graph DB Chicago at GOTO Chicago 2014
Transcript
Hi, it’s Mike with UGtastic. I’m here at GOTO Conf 2014. I’m standing with Max DeMarzi, who’s going to be presenting on graph databases and both with graph databases with Neo4j. But he also runs the Neo4j, or I should say the Windy City GraphDB database user group. That’s a mouthful. Windy City GraphDB meetup here in Chicago. Max, thanks for taking the time to speak with me. So your presentation, what is the title of the presentation and what is the gist of what you’re going to be talking about? Sure. So the presentation is basically just in relation to graph databases. And the idea of the presentation is to take you through a bunch of different use cases or things you can do with the graph. Whether you’re building a new social network, looking at permission management or network ontology, there’s many different places where graphs fit. One of the models of Neo4j is that graphs are everywhere. And we kind of want to show that and say, look, they really are everywhere. So, I mean, for people who might be familiar with a relational database, what’s the difference between something like Neo4j and RDB MS? The difference is how we handle relationships. In a relational database, you’re always joining. Every time you make a query, you’re asking to find a way to connect these two things together. In the graph, we don’t do that. Instead, we connect when you create things. So the relationships get created ahead of time. And what that gives you is the ability to say, how is this connected? By a pointer that I can traverse directly. I don’t have to worry about how big my join tables get or anything like that. Everything is an O1 cost to you when you’re trying to join two things together. And that helps you scale when you have highly connected components in your data model. Okay. And so it’s not quite analogous to a foreign key relationship described in RDBMS. It’s something like a relationship is its own entity. Yeah. And to be honest, it is kind of a foreign key. It’s really, the foreign key is in memory and it’s a pointer. So it’s not a different table you have to go and scan and find. It’s really, it’s just right there waiting for you. And that’s what really makes it fast. Computer science, there’s no magic. It’s always data structures and algorithms. So we have a data structure that’s optimized for connecting things together. And that’s the difference between us and relational database. Okay. And Neo4j, that’s not like a closed source. That’s not like Oracle or something like that. That’s another interesting aspect of this presentation is that Neo4j is an open source. Yeah, absolutely. It’s an open source library. It’s been around for about 10 years. And if you want to use a community edition, you’re welcome to use it anywhere you use MySQL. I do a lot of examples also on my blog at maximars.com where I show you everything I do and have all the sources available on GitHub. So you’re free to download and play with it and build your own stuff with it. You know, it’s one of the nice things about working in an open source company that everything you do, it gets to be open source. You don ‘t have to worry about it. You know, there’s a few bits and pieces that are client code that are closed source, but in the end, I turn those around and make blog posts out of them anyway. Right. So there’s always that sharing. And just in the spirit of sharing, going to the user group itself, the WindyCityGraphDB user group, which probably reads a lot easier than it rolls off the tongue. But are you the founder of the group or are you an organizer over there? Sure. I started the group about two years ago because I fell in love with Neo4j, the product. And I was a community user for about four years. I only joined the company about a year and a half ago. I just love the product. I fell in love with it. Like I said, it’s addictive to be able to do things in Graph. I was a SQL developer for years, and that ‘s a lot worse. But usually I wrap a blog post or two, and then I will present the blog post and explain how it was done, get more details, answer people’s questions. And then if people have their own ideas of what they want to do with the graph, I’ll show how they could do it. It’s really about the audience, whatever they want, whatever they need, they have access to ask questions and learn something from it. Yeah. And so the format, you said you started the group because you were already passionate about Neo4j. And then you’ve been… Writing blog posts and you come up with an idea for a presentation, then you write it up and then do the talk at the user group? Yeah, pretty much. I mean, the ideas come from customer work we do and also from just random people emailing me, “Hey, how would I do this in the Graph ?” Right. And sometimes it’s easier to just build it than to tell them how they would do it. Right. You know, nothing speaks louder than code. So I’ll show them, “Here’s the code.” Yeah. Someone knows how to connect to Facebook. “Well, here’s the code to do it.” Not just theoretically how you would do it. Yeah. And do you ever have anybody come in from outside? And do presentations or is it mostly just you’re fielding these requests or these questions? We have a few customers in the area and sometimes they’ll come and talk and show you what they’ve done. Okay. But a lot of times it’s hard because Neo4j stuff seems to be secret sauce for a lot of people. So they can’t really show us proprietary stuff they ‘re doing. But a lot of times it’s really just me. I wish I hadn’t been helping me out. I wish there were more open source projects out there in Chicago doing it so that they could help me out. But there’s always something, and I can talk about graphs wherever. Yeah. And we talked a little bit before this conversation about, there was a little example of a Meetups app that was looking at some of the analytics and statistics around user group meetings. Do you know anything about that? Sure. It’s something one of my colleagues built. And I think he’s going to expand it out. But the general idea is, do you know anything about that? Sure. It’s something one of my colleagues built. And I think he’s going to expand it out. But the general idea is, you can see how people, they belong to a group, but they also belong to many other groups. So they’re related through that. They’re also interests that these groups are about. Whether they’re about big data, they’re about NoSQL, whether they ‘re about Java, whatever they’re about, you can connect groups that way and connect people that way. And you can expand it further out. If you wanted to see what other groups, the cities I may want to go visit based on my current likes, something else you can do. Connect products to people through it as well, same thing. You have the trick to the graph really is if you have two points that you want to connect together through some common language, whether it’s, you know, same unit groups, same company, same product, same, whatever it is, you can do it through the relationships in the graph and just combing through and finding paths from one point to the other. Okay. And is this up on GitHub or is this a website? Do you know? It’s both. It’s a website. I don’t have the URL in my head, but it’s, it’s, you can usually just find Neo4j and Meetup and you’ll, you’ll find it. Everything we do is open source, so it should be up there somewhere. Right. So you have a repo on, I mean, an organization on GitHub. Yeah, there’s a Neo4j, there’s a Neo Contrib, there’s Neo Community. There’s just, we have like a whole bunch. Everything is on GitHub. You can see the guys’ latest commits on, on, on Neo4j dot slash Neo4j and you can see what the team worked on yesterday night. It’s kind of nice, right? You can see exactly what we’re doing every single day. And we know the bug fixes that come in, the pull requests that come in, it’s all right there. Okay. Well, thank you very much for taking the time to speak with me. No worries. Thanks. User groups with lots to say, interviews and more. No way. Sharing great ideas in the tech community. Fascinating conversations, a plethora of information. Find out for yourself today at ugtastic.com.