Today, we are getting a sneak peek into Neo4j’s upcoming big event of 2023 - NODES. It’s a completely virtual, completely free, and completely exciting 24 hours of graph content! Joining us today as a NODES 2023 speaker is Mark Heckler. Mark is a software developer & Principal Cloud Developer Advocate for Java/JVM Languages at Microsoft, conference speaker, Java Champion, and Kotlin Developer Expert focused on software for cloud and edge computing platforms. Mark is an open source contributor and author of Spring Boot: Up and Running and can be found on Twitter @mkheck
Jennifer Reif (00:00):
Welcome Graph learners to another episode of GraphStuff.FM. I'm Jennifer Reif and I'm joined today by co-host Alison Cossette. Today we are going to get a sneak peek into Neo4j's upcoming big event of 2023, NODES. It's a completely virtual, completely free and completely exciting 24 hours of graph content. It's my favorite event of the year, and this year it falls into October. There's still plenty of time to register, and I would love to see you there, virtually of course. Joining us today as a NODES 2023 speaker is Mark Heckler. Mark Heckler is a Software Developer and Principal Cloud Developer Advocate for Java and JVM languages at Microsoft. Conference speaker, a Java champion, a Kotlin developer expert focused on software for cloud and edge computing platforms. Mark is an open source contributor and author of Spring Boot: Up and Running, which we will link to in the show notes. And Mark can be found on Twitter @mkheck. Welcome.
Mark Heckler (00:55):
Thanks so much. And by the way, now it's X, it's not Twitter anymore, it's X, until next month when it's something else.
Jennifer Reif (01:01):
That's true.
Mark Heckler (01:03):
But I'm out there. I'm out there anywhere. Just MK Heck. It's fine. You'll find me.
Jennifer Reif (01:08):
Yep. That's your GitHub profile too.
Mark Heckler (01:11):
That is true, yes. I've tried to synchronize all that stuff. Some sites and options make it easier than others, but at least those two.
Jennifer Reif (01:19):
Is there anything else you'd like to add about yourself or anything you want to add to viewers or listeners
Mark Heckler (01:27):
Professionally? No. Well, I guess maybe. I'm a former Spring team member, I worked at Pivotal and then VMware as a Spring developer and advocate and got out there and traveled the world and got to engage with the great Java community and just quite frankly, amazing and open Spring community. I still do a lot of that at Microsoft. We have a deep partnership between Microsoft and VMware working on all things Spring. I get to interact with a lot of my favorite people in the community and favorite Spring team members still, as well as getting to play in all the cloud stuff. It's a good time. Personally, and you know this as well, for reasons, but I'm also a licensed instrument rated pilot. I try to bring that into my talks because I think with any talk it's... Well, with any system, frankly, the data is what gives it value, the data is what makes it entertaining and fun and extremely useful, and it's something that I think it's just a different perspective. It's a different thing to nerd out about. I guess that's a quick highlight reel.
Alison Cossette (02:42):
Nerding out is one of our favorite pastimes around here, so you're going to fit right in.
Mark Heckler (02:47):
Yes.
Jennifer Reif (02:49):
How did you end up getting introduced to Neo4j?
Mark Heckler (02:53):
For those folks who don't know, you, I got introduced via you. Because those of you who don't know, Jennifer is my daughter, and we have co-presented... It is fun because we've gotten to co-present, just a handful of times, maybe three or four times over the last just short time, maybe three or four years. But it's been a real delight each time. And of course, you working for Neo4j, I'm a longtime database wonk, and I've worked with a lot of different databases, but graph database had eluded me until you said, "Let's do something together." And we wound up just having some really great applications. Was our first talk the Marvel Comics dataset?
Jennifer Reif (03:34):
I think it was.
Mark Heckler (03:37):
And for those of you who haven't experimented with that... Well, I say, "We." I don't want to speak for you, but I will, and you can correct me if I'm off, but the Marvel Comics dataset is a very, very deep NY dataset, but it has the feel, the vibe that somebody at Marvel said, "Look, we need to make this data publicly available." They did a data dump and they ran away as fast as they could. Because the quality was not universal, it was somewhat lacking and a bit uneven, shall we say. We got to do some really fun stuff with visualizations and with just searching and querying, and racking and stacking, but it wasn't without its trials and tribulations, which gratefully you were able to handle that quite nicely. So I could focus more on the backend as the front end, if you will, from there. And we had some overlap, but that that's how I came to Neo4j, working with graph databases.
Jennifer Reif (04:34):
To be fair, I think there's a lot of data APIs that aren't exactly the most user-friendly. There's always some quirk or thing to trip you up, mileage varies on that. The Marvel would be one of my first entries into that data API world, and really digging deep on it and trying to get it over to a graph database, which it was probably sitting in tables back somewhere, and trying to morph that into a graph and make it fit, make it work with their data limits and rate limiting and stuff on. It was hairy, but we got it, we put something together.
Mark Heckler (05:11):
We made it, and it was fun.
Alison Cossette (05:15):
Mark, if you don't mind, I'm going to ask you a quick question, which is, I come from the world of Python, and I was wondering, for those who don't know what Spring is, if you could tell us a little bit about what Spring is, how it's related to Java, and just get the audience oriented if they're not familiar.
Mark Heckler (05:33):
Absolutely. And by the way, Python's a good place to come from and go to. I've done a lot of Python, but not for some time. It's a good language and different approach, obviously, than Java in many, many ways. Java and Spring, so I'll give the very broad strokes explanation, the world according to Mark, and that may not be a hundred percent accurate, but it's as I see it, and again, at that broad strokes level. I'll leave out a lot of maybe the fun or the boring details, depending on perspective.
(06:07):
But early on with Java, it was meant to be a small platform type of language, and it very quickly became a very large platform type of language because the utility of it on servers was pretty quickly apparent. And of course not being fools, the folks behind the Java language saw this evolution and tried to make it adapt and very useful in that context. However, it wasn't always easy, so the utility of it was unquestioned, but the ease of use, the ease implementation for developers was a bit troubled, I guess you could say at first, put it nicely.
(06:45):
Rod Johnson came up with the idea, and he certainly wasn't alone, but the evolution of what he came up with was Spring. He came up with the idea that really server side Java should be as straightforward and easy, and again, everything's relative, but as straightforward and easy as client side Java. And he created what became known, eventually, as the Spring framework. So Rod published this in a book with the full code listings and whatnot, and Jurgen Holler and... I can't remember the other gentleman's name, which just embarrasses me to no end, but there were a couple of folks who contacted Rod and said, "Look, this is too important to just put it in a book and walk away. We need to maintain this, expand this, grow this."
(07:28):
It was originally known as Interface 21, it became known as Spring framework. But over time, developers really latched onto this because again, this was a huge and growing need. You needed a robust server side environment and language that could handle crazy demands, crazy scale. And Spring has over the time grown to where it's not just the Spring framework. I always refer to Spring in general as the Spring ecosystem or the Spring portfolio because you have things like Spring Data, Spring Boot, Spring Cloud, and so many other things, Spring Security. But all of those are positioned to be a developer first approach. Because as a developer, regardless of language, there are many times that there's a lot of ceremony that's involved to do a particular task. And there's a lot of boilerplate code that you must go through to do something.
(08:20):
And the first time you do it, you think, "That's pretty onerous." Just to open a connection to a database for instance. Gosh, I had to do these 50 lines of code just to get a connection to the database and make sure it's open and I can pull it, I can query it. And then of course, you query it, and then you have to close it. So you've got this amount of code that surrounds the one thing you really just wanted to do. The first time you do that, you notice it, it feels very painful, but after you do it 5, 10, 50 times, it's just the way it's done. So we as developers become numb to this, and we accept this as the way things have to happen, but all of the Spring projects look at that and go, "Look, if you're going to do pretty much the exact same things every time you do something, why don't we make that by convention, or why don't we use what is commonly called autoconfiguration?"
(09:11):
Where if you're going to... Just an example for Spring Boot and Spring Data, if you extend an interface defined in Spring Data for, let's say, a data repository, a credit repository for credit read, update, delete, and you have a database driver on your class path, let's say Neo4j, then it should be obvious, and this isn't like rocket science, it should be obvious that you're wanting to interact with a database. The autoconfiguration will create-
Alison Cossette (09:35):
What obvious?
Mark Heckler (09:36):
So autoconfiguration says, "Look, on startup, I'm going to create these beans or these components that are running that enable you to do that without going through these 10 or 15 lines of code just to go, 'How many records are in my database?' Or, 'What's the name of the biggest customer we have in Eastern Europe or Western Europe or Southern United States or whatever?'" And then when I exit the application, it should auto close that. And again, these are things that happen every time the same way. So all of the Spring projects take that developer first approach, and that makes it, as a developer, just much more joyful to use, if you will. To crib off of Marie Kondo's line there.
Alison Cossette (10:25):
Does this automation bring you joy, then?
Mark Heckler (10:28):
That's right. If not, get rid of it.
Jennifer Reif (10:32):
You even wrote a book on Spring Boot. How was the journey to writing a book?
Mark Heckler (10:41):
So many things, so many thoughts. Because again, prior to the pandemic, I was out in the community all the time. I think in 2019, I was away from home over 300 days out of the year. So I was not home, I just was gone too much, admittedly. But every time you're out talking with folks, you start to realize that while there are other really good books for Spring, or Java, or anything, any topic, Python, there are going to be certain things that maybe weren't addressed the way you thought they should have been, or that you would prefer to cover them, because every author has a perspective and this thing is more important than that, or maybe this thing is very important, but I would give it a bit different treatment than another author did.
(11:29):
And I had colleagues on the Spring team who had done some really good books, who had written some good books. But of course, everybody has a different voice, everybody makes different decisions on what to leave in what or to take out, what to emphasis, how to present. And of course, every time I'm out talking with folks, they're like, "Well, what about this?" That's right. That's not in Craig's book. That's not in Greg's book, or Josh's book, or whatever. So I take notes. And at one point, one of the major publishers pinged me and said, "We'd like to talk to you about this." And I said, "I'm kind of busy right now, never home. But I've got this outline that I have together that at some point I want to do a book." And at that point she said, "When can you get me that outline?" I like, "Take a look at it so I can send it to you after we get off the call. It's no big deal."
(12:17):
So I sent it and she said, "We need to talk." And at that point I was like, "Maybe I'll do this now." So I did it. The editorial staff at O'Reilly was phenomenal. Because as an author, you always feel like it's never quite right, it's never quite good enough, there's one more thing you want to add, the whole Steve Jobs, "And one more thing." But they're there to help make sure you stay on track. Now, the other side of that is sometimes it feels like a grind because you're like, "No, this has to be in on Friday. And if I just had three more days, I could do this and add this." And so there is a trade off. I enjoyed writing it. It was extremely gratifying. It was crazy amounts of work, crazy amounts of nights, weekends, burning, not even midnight oil, but super late in the morning oil, trying to get everything done, finding things that were missed either because I removed them in a subsequent edit or somehow they dropped out in a subsequent edit that you don't catch until production.
(13:15):
There's a lot of stuff that goes into it that is a crazy insane amount of work, but am I glad I did it? Yes. But I always tell people, if you want to write a book, if you really feel passionate about it, if you really feel like you can contribute to the chorus of voices out there and have something meaningful to add, by all means do it. Don't do it to make money, don't do it because you think it'll be fun, because it is gratifying, it's rewarding, but fun is probably not a word I would ascribe to writing, because it is. It's such a lot. It's a major amount of work. Sorry, I know I probably talked way too much on that, but it's certainly a monumental undertaking, well worth it, but I always tell people, if you want to write a book, go into it knowing what you're getting into because it is a massive, massive undertaking, at least if you want to do it well.
Alison Cossette (14:05):
Not fun, but still a point of joy at the end.
Mark Heckler (14:09):
Yeah. Again, well worth doing. It's just that all this stuff, and of course books aren't the only thing. We go into everything in life thinking it's going to be this sunshine, and daisies, and musical play as I run through a field, and all the stuff you see on the commercials and stuff, and none of it's like that. But there are most things in our life that we do that we still feel like they're worthwhile. We still are glad we did them, and I am very grateful that I got the opportunity to do the book, and I still reference it myself at times like, "How did I do that one thing? How did I explain that one thing?" Because when you have to distill your thoughts, sometimes you come up with stuff that you can't duplicate later, as far as the conciseness and as far as the clarity that you want to convey. Anyway.
Jennifer Reif (15:02):
That sounds like quite an adventure, but do you have any latest adventures or recent updates or things you're working on now?
Mark Heckler (15:11):
Yeah, a couple of things. Obviously I'm going to get to speak at NODES with you, as a matter of fact, we're going to team up for what should be an absolute blast. Both of us are pet lovers, as are many people. And of course, traveling with pets brings its own set of challenges, and we've got this cool talk that we're putting together using graph technology to bring resources together to make life better, easier, more fulfilling for pet owners who are traveling with pets. I don't want to go into too many details and give away the farm on that, but it should be a fun adventure if anybody wants to tune in and join us. As far as other things, I've been working a lot with various different AI technologies. As you might imagine, Microsoft is heavily invested in that, as apparently everybody is now, right?
Jennifer Reif (15:59):
Yeah, it's the latest trend here.
Mark Heckler (16:03):
And I always say, with any tech, our field is both wonderful and terrible in terms of when we get a new toy or a new tool, because everything... Again, you've heard the old phrase to the person with a hammer, everything looks like a nail and we nail everything. We just, "It's a new tool, it's got to be a hammer, we're just going to pound on everything." The bad news is we pound on stuff sometimes that has no business being pounded on. The good news is by doing that within a very short amount of time, we quickly isolate what the best uses for that hammer is, or are, I should say, and best use is assuming there's more than one, and quickly eliminate others.
(16:41):
So with AI, of course, like with any tool in our field, we go, "Let's apply it to everything." And pretty quickly you determine what are the best applications for generative AI, in this case in particular, and then other uses that are okay, it's somewhat helpful. And then others that are just pretty much terrible. I've been working a lot with that. I do a talk called Copilot Is My Copilot, in which I tie together the aviation and tech fields, I even wear a flight suit when I present doing that, and that's fun. But it is truly a copilot, it's not meant for the foresee future, it just isn't incapable of replacing you, but it's certainly a great help in terms of workload management, as they call it in the flight deck.
Jennifer Reif (17:29):
Cool. I know we kind of hinted at it a little bit earlier, and I can fill in a little bit of details here too, but is there some info or some tidbits we can give on our upcoming NODE session? For those who haven't seen yet, the title for that is Fluffy and Fido on the Go, Applying Graph Data to Hack Pet Travel.
Mark Heckler (17:53):
Again, I don't want to spoil it, I don't want to... No spoilers if you're [inaudible 00:17:58] fans out there, but I will say this, that if you've ever tried to travel with a dog or a cat, or multiples, then you quickly realize that if it's a day trip or something, maybe not as big a deal, but if you're wanting to go somewhere for a couple or three days, you need to find accommodations that are pet friendly. And I have personally stayed in a place where we took a dog, a small dog, purse dog, basically. And yet you go there and, "We're super pet friendly." And you go there and you think, "Where can I take my dog out?" And there's not even a postage stamp size piece of grass that you can go to and let them do their business. Even something as simple as that gets to be somewhat problematic if you go to any city locations at all.
(18:49):
And then if you go there, what about dog walks? Or what about if anything were to happen, heaven forbid? Then you have what is there a veterinarian around? And if there's a veterinarian around, what are their hours? Maybe they're only open eight to four and you're traveling on the weekend and they're not even open on the weekend. All of these things factor into making travel with a pet, very easy, very difficult, or anywhere in between. We thought, "Let's try to hack this. Let's try to access some various different APIs and different data sources and see what we can bring together to make life a bit easier for those of us who just want to travel and have things safe and friendly for our furry little loved ones."
Jennifer Reif (19:32):
And be able to use Neo4j, that brings in that connected data element to see how can, not only just keeping those individual places in mind, but then connecting that all together into something that's feasible, or like you said, easy and manageable in a single trip.
Mark Heckler (19:51):
Yeah, because just assembling the data is tough. This location has this and this location has that, but really the value especially is in the relationships. I talked earlier about the value being, for most applications and systems, is in the data, and the interesting part is in the data, but it's not always in a specific static piece of data. In fact, in many cases, the real value, the value add that you really rely on is in those relationships. And that's where something like Neo4j really, really shines.
Jennifer Reif (20:22):
Are there any challenges either just with this NODE session or maybe just in general, any challenges you've encountered with Neo4j or just building presentations, speaking, et cetera, anything in general?
Mark Heckler (20:37):
I guess speaking generally. I come from a development background. I often call developer advocacy an accidental profession. It's not entirely true. I know there are a lot of different paths into developer advocacy, but most of us come from being developers or engineers for a number of years and just sharing. I often relate how I got here, and I think it's not an unusual path by any stretch. In that you're working, you're developing software, you're working on very complex systems in your location, your company, your organization of whatever size and kind, and you say, "Come here, look at this. I found this cool thing you can do." And the person next to you slides over and you show them and you're like, "That's pretty cool." You should do that at a luncheon, a brown bag thing where everybody comes in, sits around and has their sandwich and just talks tech, and this is our monthly thing, and this would be a really cool thing to share because really useful.
(21:34):
And you think, "I'll do that." And at the brown bag, somebody says, "I organize the local Java user group, you should come and speak at our JUG," as it's called, the Java User Group. And you think, "If you think that people might find benefit in that, sure, I'll come and present it. I need to add some stuff to it so I can fill out maybe 30, 45 minutes. But yeah, I can do that." So you sweat, right? You just drive yourself crazy trying to... How am I going to add to that? That was my one thing I found. But the fact of the matter is, if you're sharing one thing, you're probably sharing a lot of things over time. You go and you do a presentation at your local Java User Group, or Python User Group meeting, or JavaScript, or whatever, and then at some point somebody taps you on the shoulder and says, "This would make a really good conference doc, you should submit this to whatever conference."
(22:20):
So you do, and you get picked up, and you go to that conference, and then before you know it, somebody else says, "I really liked that talk you gave at X, Y, Z conf. Can you give it an ABC conf?" And then somebody says, "You're working eight to 10, 12 hours a day doing your engineering task, and you're going and preparing stuff and you're speaking. How'd you like to do the advocacy thing full time?" So silly me when I heard that, originally I thought, "I could do that and not have to work that eight to 12 hours a day plus the extra four hours a day, and it would be normal then, right?" Well, what nobody tells you as you wind up spending the same amount of hours, you just do it in different allocations.
(23:02):
I say all that to say this, a good developer advocate knows what a developer wants and needs, because one, they are one. Two, they have been one, delivering production systems. And three, they're out there always talking and engaging with folks who are doing that now. Right now I have a deadline, I have to get a new deployment rolled out by this Friday or whatever. So those are the challenges, is to always remain aware of what people need who are deploying real software to real production environments. That's, I think, the big challenge, and that's something that, again, if you love this kind of stuff, it's not that hard to do, but it's something you constantly have to remind yourself to do. Because we all get in these funnels where people are telling us what people want to hear. And if you're not out there and aware of what people want to hear, you just accept that because that's your input.
(23:54):
But if you know what people want or need to hear, you already have your finger on that pulse. You don't need somebody telling you... And maybe they're telling you the right information, maybe they're giving you bad information, but you're aware enough to know what that is. As far as the specifics, any technical challenges, if I run into any technical challenges at Neo4j, I have a lot of people I know there that I can tap on the shoulder and say, "Help me get through this. I have a mental block," or, "I'm running into an issue. Maybe it's me, maybe it's not, but help me get past this." So you have been my primary point of focus for that and I appreciate that. But there's a great team, your team and other folks there that I know and appreciate and admire and I've never had a problem I couldn't get past thanks to that.
Jennifer Reif (24:38):
Great. That's always good to hear.
Mark Heckler (24:41):
I would tell you otherwise too, you know this, I'm not quiet. I don't shy away from speaking my thoughts.
Jennifer Reif (24:50):
For anyone who might be interested in the session and hearing more about traveling with pets and maybe some challenges we might encounter with the presentation upcoming, the NODES 2023 talk is part of this schedule. I think that should be posted here upcoming in the next few days or so, publicly available. That will be out there. We will absolutely link your book as well, so anyone who wants to get some more information about Spring Boot: Up and Running, and just learn more about Spring Boot, how to use it, that'll be available as well. Are there any other content or events you'd like to share?
Mark Heckler (25:32):
I do want to add one thing about the book because this has been a point of confusion. Right after it got published, there was a hiccup with the O'Reilly servers in terms of the repository. While they were working that out, I went ahead and created a repo under my own GitHub account, which is just github.com/mkheck, again that's the same mkheck as Jennifer pointed out earlier. And then I actually have the repo out there. If anybody has trouble finding it pinging me, I think it's just Spring Boot book or something along those lines. If you search under my repo and look for Spring Boot, you'll I'm sure locate it. But the scripts for creating the local containers, or I should say images that containers are spawned from are out there as well as all of the repos. The repo actually has different branches out there for the different chapters.
(26:20):
And I also have all code in Java and Collin except for the data feeder app. But by all means don't... Because I've had people question, where did it go? The answer is, I don't know, on O'Reilly site. I just went ahead and published that out there. So it's easy for anybody to get to. As far as any upcoming events, I'm going to be in Antwerp, Belgium, so end of September, beginning of October is Devoxx Belgium, and I will be there at Antwerp. I think I'm going to be at Microsoft Ignite later on in the year, I'm not a hundred percent sure. I've got a couple other things that are still hanging, still pending.
(26:55):
But check me out on YouTube and I will try to do better about tweeting on where I'm going to be and when. I used to be really good about that when I was just living on the road, but I am trying to make sure folks know where I'm going to be in case they want to show up and give me a hard time or say hi or anything like that. I do sign books, if you are okay with the value being reduced by my signature being on there, that's perfectly fine. It is a signature. I always tell people, "An autograph ads value, signature it's questionable. You just never know." But it's there if you want it. Otherwise, I'd just be happy to meet anybody and talk shop.
Jennifer Reif (27:31):
Great. Sounds like a lot of fun.
Alison Cossette (27:33):
I have one last question and it's somewhat off-topic. If Twitter is now X, does that mean we're not tweeting anymore? Because you mentioned tweeting, are we X-ing? What does that mean? Are we still tweeting if it's not Twitter? I don't know.
Mark Heckler (27:48):
I've said the same thing, x me or whatever. I think they've taken to calling them posts and reposting, although that seems really awkward to me. I do think we should come up with something like X-ing or something like that, it just seems more appropriate. But again, I'm not convinced that this is going to stick. It is like the artist formerly known as Prince. That was a journey that he took for probably some pretty good reasons really, but it always made things a little awkward. Well, everything now comes through X formerly known as the app formerly known as Twitter. I have to wonder if this is just a publicity stunt to keep it in the forefront of people's discussions and eventually we'll just all go back to Twitter. Chicago, same thing. Who calls it the Willis Tower anyway? It's the Sears Tower.
Alison Cossette (28:40):
Always.
Mark Heckler (28:42):
I digress. So we'll be X-ing you there, I guess. Until we're tweeting again.
Jennifer Reif (28:50):
Every month, every GraphStuff.FM podcast, we do a favorite tools of the month. I guess, do you want to lead off?
Mark Heckler (29:00):
Sure. The tool that I've been using most, and I feel like this is a little bit of cheating because, but it's all tied together. So GitHub Copilot, I know there's excitement, there's concern. As with any new tool, there's always, again, where does it fit? Where are the lines? I think that in general, GitHub is doing a great job. Full disclaimer, Microsoft owns GitHub. I guess they're in the family, but again, I always approach things first and foremost as a developer, and GitHub Copilot is a super useful tool. I look at it as the Stack Overflow of 202X, whatever, 202N. Because until a couple of years ago, nobody would imagine that developers would not have access to searching for a particular solution or hitting a Stack Overflow if they got stuck on something, if for nothing else just to get some inspiration on how they might have to go about solving a particular problem they were running up against.
(30:02):
And GitHub Copilot, again, it's like every tool. Sometimes it's incredibly useful, sometimes less so, but it is a copilot, you're always in that left seat. You're the captain of the two pilot certified aircraft there. So GitHub Copilot is super useful whether you're using Copilot Chat, which helps prompt you as you go, whether you're using it for documentation or writing up paragraphs, description, documents, summaries, using it to create test cases. There's also... Let me back up a bit. I use Visual Studio Code for some of my things. I also use IntelliJ IDEA. Like most developers, we can have a lot of tools at our disposal and we pick and choose depending on circumstances. But with VS Code, you can use Copilot Chat as with IntelliJ and other things. But then you also in VS Code, you can use Copilot... Sorry, copilot, but you can also use Copilot Chat with VS Code I should say, because Copilot Chat lets you pop up in a separate chat window and fully describe what you want to happen.
(31:06):
And at times it is amazing what that gives you. It's not always perfect, but again, if you were searching through the internet, you're going to find things like, "I think I can use that, but I'll have to tailor it and make it specific to my use case." But it gives you a huge headstart. It helps give you that force multiplier as a developer. I highly recommend GitHub Copilot, Copilot Chat via Studio Code. If you're a student, I believe you can get free access to Copilot. If you're not, it's a very minimal cost. And of course many companies are buying it for teams of developers. So check it out, that's what I would recommend, it's what I use. And again, utility, it varies because like any other resource, you have to insert your wetware there. You have to keep you in the loop and decide when it makes sense, but it's super useful.
Jennifer Reif (31:56):
Mine this month is AsciiDoc, which is not super high-tech and fancy, but I actually have used it quite a bit this last month for writing a lot of content. I pretty much write most of my blog posts in AsciiDoc format. And then I've been working on a new Neo4j Graph Academy course for Spring Data Neo4j actually, and writing that all in AsciiDoc as well. And there's a lot of really neat formatting things that you can do to include parts of documents or to link certain things and format them and organize them and just make them look very neat without a whole lot of fancy work behind the scenes. Really neat. I know a lot of developers use AsciiDoc for documentation or writing content generation and things like that, but that's just one thing I've noticed. It hides behind the scenes most of the time, but it's one thing that's been really useful and has come out into the foreground for me this month.
Alison Cossette (32:57):
My tool of the month, it's a little unconventional, but honestly it's the Neo4j developer blog, because what I find is not only do we and DevRel contribute, but we have other folks throughout the company and different ninjas that contribute. And the one that I really enjoyed this month was building the educational chatbot for Graph Academy with Neo4j using LLMs in our new vector search.
(33:25):
What Adam did is he went through and used our documentation and different questions that were asked to add a chatbot layer on top of Graph Academy. And I just know so many of the data scientists who are in my space are really wondering how from a code perspective can we start leveraging gen AI in different ways? I just think that was a great use case, I really enjoyed the developer blog this month. But speaking of vector assertion, ontologies and distance metrics in multidimensional space, we also have a live stream coming up this month that's part of our going meta series, so episode 20 is coming out. If you haven't seen any of the going meta series, it's really about how do we leverage ontology and semantics within our space. Have you seen any of those, Jen?
Jennifer Reif (34:16):
I think I've seen a couple of them.
Alison Cossette (34:19):
Speaking of chatbots as well, we also have a Medium article that we'll link in the show notes that talks about building chatbots for clinical trials. And in this case, they're specifically using different types of data sources. So how do you use multiple data sources to actually bring the data in to build that chatbot?
Jennifer Reif (34:40):
That last one was from Sixing, and he does a really fabulous job, and has had a ton of great content out there. So if you haven't seen any of his stuff, definitely check this latest one out, but he has a bunch of others that are really awesome too. Leading away from, I guess, the chatbots, if you will, I actually took a Graph Academy course recently, one of our latest ones on the introduction to Neo4j and GraphQL, and there's also a dev blog out there on our Neo4j developer blog for that. So definitely go check that out. It's a really great course covers a wide range of stuff if you're just interested in what GraphQL is and how it's being used, or if you want to get your hands on a little bit with it, this is a really great course to give you that.
(35:26):
You don't have to set up an environment, it's all self-contained. Really good walkthrough. As someone who isn't so familiar with GraphQL, this was a great introduction for this. Definitely go check that out. And again, there is a developer blog covering that course as well. Going from that, we have a couple of meetups on GraphQL... Well, a meetup in a conference, I guess. There's the London Data GraphQL meetup that is on September 7th, that will actually be at the Neo4j offices, so if you get a chance and you're in the area on September 7th, definitely check that one out. And then the GraphQL conf is occurring in San Francisco, California on September 19th. I think we have a couple of people that are going to be there for that. So definitely go check that out and catch up with some Neo4j folks if you get the chance and nerd out on that.
(36:18):
Following. One more blog post on the developer blog, at least for now, is creating a custom connector in Confluent Cloud to sync data to Aura for real-time analysis. Now, this is a multi-part blog post. This is the part two installation. And we get a walkthrough of the code and how to set up a custom connector from the Confluent Cloud, and you have sources and syncs, and this one is covering the sync portion of that. Definitely check that out if you're interested there. The blog goes into details on logs, files and how to test it, and et cetera, et cetera. So really good stuff there. And I think Alison, we're going to segue into some pretty heavily technical stuff here in the next little bit.
Alison Cossette (37:02):
Yes, I'm actually going to be in London on September 7th, so I'm trying to clear my calendar so that I can actually get to that GraphQL meetup.
Jennifer Reif (37:10):
That would be awesome.
Alison Cossette (37:13):
Yeah, I'm going to be in for a developer relations conference, so I'll be there.
Jennifer Reif (37:17):
So listeners, if you're in the area and you want to catch up with Alison, definitely make sure you're there.
Alison Cossette (37:23):
Exactly. So it's only a few days after we release this podcast, but coming up, I'll tell you where I'll be later in the month as well. One of the things you mentioned when you were talking about the Graph Academy course, Jen, is the fact that you don't have to set up the environment. And whenever we have things that are in our sandbox, it's a similar scenario. There is a blog post out on The New Stack about building a movie database with the Knowledge Graph Sandbox. And what it does is it shows you how to actually take movie set data and create those graphs within the sandbox. So if you're trying to get your hands dirty and play a little bit and have a very low technical barrier to playing with something, that's a really good spot to drop in.
(38:12):
Our pal, Noah Meyerhoff did a video on using knowledge graphs from text in an LLM. It's one of the things that's actually really interesting to me because oftentimes we read these blogs and we look at ways that you can leverage graph, but for many people, what you're trying to leverage is this unstructured data. And sometimes maybe you're not quite ready for the going meta series, but if you want to take some of your data and just see what it looks like, if you take an unstructured piece of text and actually create a knowledge graph, then I definitely think you should check out Noah's video because they've set up a way that you can take a piece of text, drop it in, and if you have a JSON of the structure of your data model, you put that in as well.
(39:01):
And what it will do is it'll actually give you a zip file that you can drop directly into our data importer. You can take the JSON from your Arrows app ,or some structure of your model, put it in there with whatever the piece of text is that you have, and then you can drop it directly in. It's a much lower code way of being able to create the knowledge graphs. I love that because it really is more accessible. In both of these things, with the sandbox as well as the knowledge graph from text, we're really trying to find ways that we can make it a little bit easier for newer folks that don't have as much technical experience.
Jennifer Reif (39:46):
And just adding on to that a little bit, I did a Neo4j live segment earlier this week on movie recommendations, and we had, Dimitri, who was our guest, and he came on and was talking about how he got started with this latest project of his where he built basically a Google Colab notebook, if you will, and put Python code and ran Cypher queries to create a movie recommendation system. Again, nice easy onboarding, he walks through his process in the YouTube video and we talked back and forth about how he put this together and what he might've had trouble with and how he overcame those problems and so on. Really good on-ramp. If you're curious how to get started with things or how other people are getting started with their projects, feel free to check that out.
(40:40):
And then a little bit on that same vein, another piece of content I worked on was a blog post for the Java Code Geeks publication where the part one of this... I guess it's a two part series, part one of this walkthrough building, a Spring Data Neo4j application and how to create your domain and just get it set up. This latest blog post that I wrote walks through the next level a little bit with using custom queries and then creating projections with the data model. Slightly next level up, but again, nothing too complicated, just an easy on-ramp helping people get started, how to use Spring Data Neo4j features. Definitely check those out if you're curious about any of that.
Alison Cossette (41:24):
Projections are definitely my domain. Anytime somebody's showing folks how to create projections, that's definitely I was like, "Projections, more people getting projections." Projections really are ways that you take a sub graph of the data or a projection of your graph so that you can do certain types of maybe data science or manipulations. And we have someone who just did a really great, very technical walkthrough on the HashGNN capabilities within the GDS, Graph Data Science, product at Neo4j. And what I like about it is he's very, very specific and really gives you every piece and explains what is the hash of HashGNN. I definitely think you can check out that video. Anytime we have content that really gives you that handhold and takes you through something, I always find it so valuable. I know that when I first started using BigQuery and Google, I was like, "Wait, but how do I get it out?"
(42:33):
Early on, I was like, "Can I just get a CSV somehow? What's happening here?" Data scientists, they love their CSVs. We also have a video this month about how you actually use Google Data Cloud demo to move data from BigQuery into Neo4j. And no, you don't have to go the old school CSV route. But the idea really is that you're taking the data from BigQuery and getting it into Neo4j. And it really is a good way to start to understand the concept of graph because we show you when you have a table and you're trying to get into a graph, how do you look through that and how do you actually manage that pipeline? I appreciated that one as well.
(43:19):
And then lastly, speaking of data, we also have one on metadata management. So using Neo4j to do the metadata management of no SQL sources. When you have those non-traditional formats, how can you actually manage the metadata in a graph setting? This month particularly, I feel like there was a lot of content that came out that was really focused on very technical hands-on and getting people really moving forward in whatever domain they're already in. Whether it's Spring, or Python, or you're in cloud, we're really providing ways to get people into the graph. I think it's been a great month of content for sure.
Jennifer Reif (44:07):
Yeah, it has. And the thing I like best about a nice on-ramp is you get that context that gives you... Even if you know some of the information, it ties it all together, where then you understand what's going on. So not only can you just do something by rote, or do something because you memorized it or saw it somewhere else, you're understanding why it's happening and how to reproduce it or how to customize it. I love that introduction and getting that context, and then being able to springboard off of that. And that's exactly what our Road to NODES training is going to be doing here in... We've got a few different sessions, couple in September and a couple in October. If you want to see the full listing... We'll only mention the ones in September here, so if you want to see the full listing definitely check out our NODES site.
(44:51):
But for those of you who may not be familiar, NODES is our big virtual conference every year that Neo4j hosts. It's a fabulous event that's completely free, completely virtual. All around the globe speakers, there's going to be, I think, 24 hours of full content back to back, lots of technical stuff. Developers and data scientists especially, definitely check out the NODES event. But leading up to that, we're going to be having some training. The first one is on September 20th that's going to be doing interactive dashboarding with NeoDash. And then the second one is going to talk about graphing relational database models on September 27th, which actually has kind of piqued my interest. If I get a chance, I might try to jump in on that one for sure. And then again, there's a couple more on October, but if you want to see what those are going to be, either wait for the next podcast episode or pop out to our NODES website. With those talking about events, let's dive into actual physical events.
Alison Cossette (45:49):
I know. It's so nice to actually have places to go. While NODES is virtual, we do have lots of folks from the Neo4j team that are going to be out and about in the month of September. We're going to go by region and let you know where to find us. In the Americas, we have in Austin, Texas, on September 13th, there is a meetup, it is virtual and in-person, and it is about airplane route optimization using Neo4j. So that's always a fun one. In APAC, we've got a number of events. We've got meetups in Singapore on the intersection of graph databases and AI on September 20th. The following day in Australia, we have graph database Melbourne. And then additionally the following week on September 28th, also in Australia, there is a meetup on exploring the intersection of graph data science and AI, my personal favorite as we know.
(46:53):
And if you are curious and you want to see me again, if you miss me at the beginning of the month in London, I will be with a few different folks from our team at PyCon India from September 8th through October 2nd. A throwback to our early part of the podcast, we're going to be doing a couple of presentations and a workshop leveraging Marvel data. So if you are in India and APAC and you want to see some fun Marvel data live and in action, we will be there presenting that in India. What's going on in Europe, Jen?
Jennifer Reif (47:27):
Alrighty. They're starting off on September 13thm there is a PyData Amsterdam, which is of course at Amsterdam. If you're a Python person and/or maybe Python data person, PyData, then I guess you'll definitely want to check that out if you're in the area. We've got a couple of big data conferences, one in Big Data London, one in Paris, September 19th and 25th respectively. So the London one's on the 19th, Paris on the 25th. Neo4j will have a presence, there will be some booths and sponsoring and such, so if you want to come by and chat with us feel free to do that. And then last but not least, there is a Java user group or JUG, JUG Saxony Day 2023, there's going to be a session on dogfooding the graph ecosystem, that's in Germany on September 28th. So if you're in the area, definitely check those out.
(48:20):
Finally, our GraphStuff channel on Discord is where you can post comments and or suggestions. So if you have some feedback or things you really liked or things you'd like to see on the GraphtStuff.FM podcast, please do reach out to us on Discord, the GraphStuff channel, and leave your information there. We really appreciate Mark for coming and joining us and talking a little bit about your background, a little bit about Spring. We covered the NODES 2023 and our joint session that will be there. And talked a little bit about events and advocacy, and a little all over the map. We'll have everything linked. And again, if anyone's interested, feel free to reach out to Mark and pinging him and ask questions and so on. But we will look forward to hopefully seeing most of you at NODES.
Mark Heckler (49:12):
Well, it was a pleasure to chat with you, Alison and Jennifer always, both of you. It's just great to get a chance to just talk tech.
Jennifer Reif (49:22):
Thanks for listening and we'll talk to you in another installation of GraphStuff.FM.
Alison Cossette (49:26):
Thank you all. We'll see you next month.
Jennifer Reif (49:28):
Bye.