07-Mark-Heckler.txt

The Lost Art of Debugging with Mark Heckler
Jim Grisanzio with Mark Heckler
Duke’s Corner Podcast — August 22, 2022

Duke’s Corner Podcast with Java developer and JavaOne 2022 speaker Mark Heckler from St. Louis. Missouri in the United States. Mark is a software developer and developer advocate at Microsoft, a Java Champion, a conference speaker, and an author. Check out his book Spring Boot: Up and Running. In this conversation Mark previews his session at JavaOne — Das Boot: Diving into Debugging Spring Boot Applications. Mark also talks about the value of technical conferences and the community.

https://dukescorner.libsyn.com/the-lost-art-of-debugging-with-mark-heckler

Transcript

(00:00:00):
Hey, it’s Jim.

(00:00:01):
Got another speaker profile here for Java 1 coming up in October in Las Vegas.

(00:00:07):
This is with Mark Heckler.

(00:00:08):
I first met Mark in Atlanta at DevNexus in April of this year.

(00:00:15):
And seems like a really nice guy.

(00:00:16):
I’ve been following him on Twitter for a while.

(00:00:19):
He’s very active there.

(00:00:20):
He’s a software developer and developer advocate at Microsoft for Java.

(00:00:26):
And he’s a speaker, Java champion, FOSS developer, Kotlin developer.

(00:00:30):
He’s an author.

(00:00:30):
He wrote Spring Boot Up and Running.

(00:00:34):
And very active on Twitter at M-K-H-E-C-K.

(00:00:40):
And his session that he’s doing at Java 1 is about the lost art of debugging.

(00:00:47):
And this is really interesting to me because I’m very interested in how engineers solve complex problems.

(00:00:53):
And highly scalable systems are incredibly hard to…

(00:00:58):
debug because they’re so big no one can read every single line of code so you you

(00:01:03):
have to approach it in a in a systemized way right and so i’m just i’m very

(00:01:08):
interested in this and mark’s a good guy and i hope you enjoy the conversation talk

(00:01:15):
to you soon hey mark how you doing listen java one is back you going

(00:01:25):
As a matter of fact, I am.

(00:01:26):
I am actually getting to present there again this year.

(00:01:29):
Excellent.

(00:01:29):
Excellent.

(00:01:30):
That’s why we’re here.

(00:01:30):
We’re here to talk about your session at Java 1, which is back in Las Vegas, October 17th through 20th.

(00:01:37):
So what are you talking about?

(00:01:39):
I’m not sure.

(00:01:39):
I’m kidding.

(00:01:40):
I’m kidding.

(00:01:42):
I’m talking about debugging Spring Boot applications using, of course, Java.

(00:01:47):
Cool.

(00:01:48):
Why is debugging important?

(00:01:51):
I’m actually interested in this because I used to work in Solaris and I used to work on the test team.

(00:01:56):
I’m interested in people who debug and find problems.

(00:02:01):
Well, you know, for years I’ve looked at debugging as kind of the lost art.

(00:02:05):
And I feel like we as developers,

(00:02:08):
we tend to rely on experience versus actual truth and finding that source of truth.

(00:02:13):
So we shortcut a lot of things and sometimes that even works.

(00:02:16):
Sometimes it doesn’t work at all and we wind up wasting a lot of time.

(00:02:19):
And we typically think of a lack of debugging skills as a junior.

(00:02:23):
developer type of problem,

(00:02:24):
but it isn’t because again,

(00:02:26):
as more experienced developers,

(00:02:28):
many times we fall into the same pitfalls,

(00:02:31):
maybe for different reasons.

(00:02:32):
Again, I’ve seen this before, this is how to fix it.

(00:02:34):
But so many times we try to short circuit it,

(00:02:36):
try to shortcut things and wind up making a much longer resolution time than we

(00:02:42):
would necessarily have to.

(00:02:43):
And much more frustrating too.

(00:02:44):
So when you find the source of truth,

(00:02:46):
you can fix the actual problem versus vigorously attacking symptoms.

(00:02:50):
And that’s what this talk is all about.

(00:02:53):
interesting that you mentioned that this is not necessarily a problem for more

(00:02:58):
junior developers why why are senior developers sort of not you know some senior

(00:03:03):
developers anyway why is this an issue for them

(00:03:05):
Well, I think we all could do better.

(00:03:07):
You know, I’m a firm believer in we’re always learning and we should always be learning.

(00:03:12):
But I think,

(00:03:13):
again,

(00:03:13):
for different reasons,

(00:03:14):
I think a lot of times when you’re new to a technology or a tool chain,

(00:03:18):
it’s just a lack of awareness.

(00:03:20):
But once you fall into a pattern and you,

(00:03:23):
you know,

(00:03:23):
I’ve fixed this three times,

(00:03:24):
this type of issue three times,

(00:03:26):
I should say,

(00:03:26):
hopefully not the same thing.

(00:03:28):
But when you’ve been there a time or two,

(00:03:31):
you tend to find things that fit patterns,

(00:03:33):
which generally is a good thing.

(00:03:35):
However,

(00:03:35):
again,

(00:03:36):
you can fall into that trap because if it approximates something that you’ve seen

(00:03:42):
before and there’s a quick fix that maybe you spent a lot of time trying to find,

(00:03:46):
you just typically apply that quick fix.

(00:03:49):
I kind of think of like taking your car to a mechanic.

(00:03:52):
So if you take your car to a mechanic and the mechanic says,

(00:03:54):
Oh,

(00:03:54):
I’ve seen this,

(00:03:55):
just fix this,

(00:03:56):
just replace this.

(00:03:57):
And that’ll be $400.

(00:03:58):
And you say, great, I’ll be back on my way.

(00:04:00):
And if that mechanic doesn’t do adequate troubleshooting, they’re just going based on, you know, a

(00:04:06):
sort of approximation of something they’ve seen before,

(00:04:08):
chances are that’s not going to fix the problem and you’re going to be back

(00:04:11):
tomorrow and then another 400 or $800.

(00:04:13):
And then you do that three or four times and you think,

(00:04:16):
gosh,

(00:04:17):
if that person had just taken the time to accurately diagnose the issue,

(00:04:21):
probably in half a day,

(00:04:22):
I would have had my car back,

(00:04:23):
spent less and been a much happier customer.

(00:04:25):
And that’s kind of what we fall into.

(00:04:27):
Even as more experienced developers, we fall into that trap all too often.

(00:04:32):
interesting interesting okay so so tell me about the actual session in terms of how

(00:04:35):
you do it i mean i mean i’m watching some of your videos you do a lot of live

(00:04:39):
coding is that going to be you know what it’s about yes now i will say that uh in

(00:04:44):
the context of spring boot applications there is a lot of uh a lot of things that

(00:04:49):
happen on your behalf largely i kind of attribute most of them to auto

(00:04:52):
configuration many times if you’re new to spring or even if you’re not you kind of

(00:04:56):
view that as a little bit of dark art you know so um

(00:05:00):
It isn’t.

(00:05:01):
It’s all science and technology.

(00:05:02):
It’s not magical, it’s logical.

(00:05:05):
But many times,

(00:05:06):
it helps to peel back those covers and see,

(00:05:09):
for instance,

(00:05:09):
the application initialization,

(00:05:11):
what happens in the dependency injection container.

(00:05:13):
I step into that, again, through the debugger,

(00:05:17):
And then we actually write some code.

(00:05:18):
And I try to keep it very simple code and straightforward so we can focus

(00:05:22):
specifically on what we’re trying to accomplish versus setting the table around it.

(00:05:26):
But yes,

(00:05:27):
it’s 100% in the debugger and in actual,

(00:05:34):
in the IDE,

(00:05:34):
in the browser where we see what comes back,

(00:05:37):
for instance,

(00:05:37):
from Actuator to get to the crux of the matter and what the problem could be and

(00:05:41):
how to solve it.

(00:05:43):
interesting i mentioned a little bit earlier that i was actually interested in this

(00:05:46):
topic because i used to work in solaris i used to work at sun on the open solaris

(00:05:50):
project and um i was on i worked in the kernel team obviously i’m not a kernel

(00:05:56):
developer but i was on i was in that organization surrounded by kernel developers

(00:06:00):
and i was these are obviously non-trivial people right so they’re highly skilled

(00:06:05):
and i was always very interested in their

(00:06:09):
training in terms of their thinking process of how they wrote code,

(00:06:12):
how they tested code,

(00:06:13):
how they did code reviews,

(00:06:14):
things like that.

(00:06:16):
Just as a, almost as a training for me on how to manage a project, right?

(00:06:22):
Because when you’re dealing with such highly scalable and very,

(00:06:26):
very important systems,

(00:06:27):
just like you do in Java,

(00:06:29):
these things have to work,

(00:06:30):
they have to work well.

(00:06:33):
And I was interested in their thinking process.

(00:06:36):
Particularly designing the system,

(00:06:39):
you say debugging and so fixing problems before it’s out there,

(00:06:42):
essentially.

(00:06:44):
In your experience, talk to me a little bit about the difference between writing code and then debugging.

(00:06:54):
What’s the difference in the thought process?

(00:06:58):
Well,

(00:06:59):
the simple answer,

(00:07:00):
I suppose,

(00:07:00):
is one’s a creative discipline and one’s a very,

(00:07:02):
very much analytical discipline.

(00:07:04):
But there is a lot of overlap and a lot of play.

(00:07:09):
Hopefully,

(00:07:09):
again,

(00:07:10):
and I kind of hone in on this specifically,

(00:07:13):
but obviously,

(00:07:14):
hopefully,

(00:07:14):
we’re doing test-driven development.

(00:07:16):
We’re actually creating the test first to catch a lot of things that might potentially crop up.

(00:07:20):
We’re not just throwing code out there and going, gee, I hope it works.

(00:07:23):
However…

(00:07:24):
You know,

(00:07:25):
so I am ignoring a lot just for the topic because we only get a short time together

(00:07:29):
to discuss this and then,

(00:07:30):
of course,

(00:07:30):
much more time afterward.

(00:07:32):
But I do think it’s in…

(00:07:37):
The two disciplines are not orthogonal.

(00:07:41):
I mean, you have the creative discipline, which is wonderful.

(00:07:44):
You know,

(00:07:45):
I always talk about development,

(00:07:48):
not just that it’s a very mathematically based type of process,

(00:07:52):
it’s an artistic process as well.

(00:07:54):
The two are not mutually exclusive, and in fact, they complement.

(00:07:58):
But I do think that it’s easy to kind of fall more on one side or the other if we

(00:08:03):
don’t maintain that balance.

(00:08:05):
And once you create some code,

(00:08:07):
even if all the tests pass,

(00:08:09):
many times something happens,

(00:08:11):
which I always do come back to so many times.

(00:08:14):
And again, I’m guilty of it too.

(00:08:16):
If you call over your… It used to be when you’d sit next to people.

(00:08:20):
Now, of course, we’re geographically dispersed.

(00:08:22):
Thank goodness.

(00:08:23):
I think that makes us a lot more efficient and effective in many ways.

(00:08:26):
But…

(00:08:26):
But if you call over someone via Teams or Slack or what have you,

(00:08:30):
and you say,

(00:08:31):
just kind of sanity check me,

(00:08:32):
look over what I’m doing.

(00:08:33):
And of course, then you step through things and you start talking through things.

(00:08:37):
A lot of times what happens is that the other person or you,

(00:08:41):
if you’re the person called over,

(00:08:42):
you say,

(00:08:42):
well,

(00:08:43):
what’s it doing?

(00:08:44):
Well, it’s doing this.

(00:08:45):
Well, how do you know it’s doing that?

(00:08:48):
Well, because I’m getting no value back.

(00:08:50):
Okay, so how do you know it’s doing what you say you’re doing?

(00:08:54):
Well, because I’m getting no value back.

(00:08:56):
Yeah,

(00:08:56):
but aren’t there more than one plausible scenarios that would result in you getting

(00:09:00):
no value back here?

(00:09:01):
Well, no, I don’t think so.

(00:09:03):
You don’t think so.

(00:09:04):
And until you isolate exactly what’s happening and why it’s happening, you really don’t know.

(00:09:10):
You just suspect.

(00:09:11):
And again, sometimes we kind of have a strong suspicion and that turns out to be right.

(00:09:16):
And most of the time that’s good,

(00:09:17):
but that can actually hurt us down the road because if we get lucky,

(00:09:20):
I shouldn’t say get lucky,

(00:09:22):
but if we happen upon the solution three or four times in a row,

(00:09:27):
we just assume that that’s always the case.

(00:09:30):
And the world has a funny way of showing you things are not 100% almost inevitably.

(00:09:35):
It’s going to show you that edge case at some point,

(00:09:37):
and you’re going to spend an inordinate amount of time trying to find what the

(00:09:40):
truth really is because it all of a sudden doesn’t match the other four or five

(00:09:44):
times it happened almost identically before that.

(00:09:47):
Something has changed.

(00:09:49):
There’s a variable that’s different.

(00:09:51):
Not literally a variable, but perhaps it is.

(00:09:53):
And that’s what we have to combat.

(00:09:55):
Combat the assumptions,

(00:09:57):
find the verifiable truths,

(00:09:58):
and find the solution to the actual problem underneath.

(00:10:03):
It’s very interesting.

(00:10:04):
You use the word truth multiple times here.

(00:10:07):
Yeah.

(00:10:08):
And it’s very interesting.

(00:10:10):
You don’t know until you actually see the data and actually go through the whole thought process.

(00:10:14):
It’s just basically a scientific method.

(00:10:17):
Yes.

(00:10:18):
And I also talk about the what and the why.

(00:10:21):
Well, first of all, many times we short circuit this and we think we know what is happening.

(00:10:26):
But when we find out what’s happening, it’s something different.

(00:10:28):
The what is different.

(00:10:29):
But even once we determine the what,

(00:10:32):
many times,

(00:10:32):
again,

(00:10:33):
there can be multiple ways of getting that result.

(00:10:36):
I’m getting back a value of four.

(00:10:38):
Why am I getting a four?

(00:10:39):
Well, I’m pretty sure I know that.

(00:10:41):
Well, then we’re into a new set of assumptions.

(00:10:43):
We have to verify why we’re getting four here versus we’re pretty sure we know why

(00:10:47):
we’re getting a value of four back here.

(00:10:50):
So is this something you’ve been interested in for a long time?

(00:10:54):
Yes.

(00:10:54):
You know,

(00:10:55):
that’s something that I had a good mentor years ago who really pounded into me the

(00:11:00):
importance of debugging,

(00:11:02):
good debugging skills.

(00:11:03):
And sadly,

(00:11:04):
like most things that we do when we get involved with something,

(00:11:08):
we get busy with other things and it just never happens.

(00:11:10):
And I thought for years about doing a talk on debugging.

(00:11:14):
And I actually, this is kind of the intro talk.

(00:11:16):
I actually am putting together a much deeper dive,

(00:11:19):
but this is kind of the let’s get started and start the conversation talk because

(00:11:23):
I’m just now getting around to this.

(00:11:25):
You know, it had been on my list for some time and I’m finally kind of throwing it out there.

(00:11:30):
So I’d like to take this much deeper and broader, actually, in terms of ground that we cover.

(00:11:36):
But I think this is a good start to kind of get people thinking along these lines about,

(00:11:39):
you know,

(00:11:39):
let’s…

(00:11:41):
I’ll say slow down.

(00:11:42):
That doesn’t mean take three days to try to troubleshoot an issue that you can

(00:11:45):
maybe get a couple hour fix in.

(00:11:47):
But many times we think, oh, this will be a quick fix.

(00:11:50):
And it almost never is a quick fix.

(00:11:52):
So rather than try to throw something out and miss and then do that three or 10 or

(00:11:57):
50 times,

(00:11:59):
if we just take a beat and we really analyze what’s actually happening and why it’s happening,

(00:12:05):
relatively speaking,

(00:12:06):
the fix is much faster,

(00:12:07):
even though we tend to slow down,

(00:12:09):
take a breath and then fix it right.

(00:12:11):
Interesting.

(00:12:12):
Well, I’m sure it’s going to be a great talk.

(00:12:14):
I’m really interested in it myself,

(00:12:16):
just for project management experience,

(00:12:18):
basically,

(00:12:19):
because I observe developers and the way they work,

(00:12:23):
and I glean anything I can,

(00:12:24):
any kind of lessons I can for what I do.

(00:12:32):
I’m interested just to speak a little bit more broadly here about your experience.

(00:12:37):
Why did you become a developer?

(00:12:41):
Boy, it’s probably one of the worst reasons in the world.

(00:12:45):
Well, I actually have heard worse, so I won’t say that.

(00:12:48):
But I…

(00:12:50):
You know,

(00:12:51):
when you’re first starting out in this field,

(00:12:53):
many times we look at computers as being precise,

(00:12:56):
right?

(00:12:57):
It either works or doesn’t.

(00:12:58):
It’s on or off.

(00:12:59):
I mean, even binary.

(00:13:00):
I mean, you’ve got your one and zero, right?

(00:13:02):
It’s literally two values.

(00:13:04):
So at the very core of it, it either is something or isn’t something.

(00:13:08):
It either, like I said, is on or off.

(00:13:10):
So I felt like, you know, there are so many, I guess, disciplines, career options, whatever, where the…

(00:13:18):
the people make things kind of messy and I always kind of initially when I was much

(00:13:22):
younger and much more I guess naive thought the computers would isolate and

(00:13:27):
eliminate much of that little did I know that dealing with people is is a larger

(00:13:32):
portion of it I often say that anytime we try to find a solution to a problem the

(00:13:36):
tech even though not to minimize the difficulty of the tech and the the complexity

(00:13:41):
But the tech is the simple part, right?

(00:13:42):
It’s getting all of the stakeholders on board,

(00:13:44):
getting everybody to agree that this is a valid user requirement and we have the

(00:13:49):
capability to implement it.

(00:13:50):
Does it make sense?

(00:13:50):
And can we scale it?

(00:13:51):
And so many things.

(00:13:53):
And technically, yes, those are challenges, but the people challenges are much larger.

(00:13:58):
So ironically, one of the reasons, the main reason I got into tech is absolutely a flawed approach.

(00:14:04):
reason at all.

(00:14:06):
But that said, I do enjoy the people part of it.

(00:14:08):
I think that is what makes it certainly more dynamic.

(00:14:11):
And then you still have the debugging underneath.

(00:14:14):
You still have that very precise analysis that you can apply as well.

(00:14:17):
So in my mind now, it’s kind of the best of all worlds.

(00:14:21):
Certainly a different perspective than what I came into it with.

(00:14:27):
Interesting.

(00:14:28):
OK, so if you if you had to do it all over again, would you would you do it?

(00:14:34):
In other words,

(00:14:35):
you became a developer,

(00:14:36):
you know,

(00:14:36):
years ago,

(00:14:37):
but now,

(00:14:38):
you know,

(00:14:38):
we’re now we’re now,

(00:14:39):
you know,

(00:14:40):
it’s a different world now,

(00:14:41):
different technology,

(00:14:42):
different tools.

(00:14:43):
The tools that you guys use are incredible.

(00:14:46):
I mean, I used to be in the construction business, so I know a lot about tools.

(00:14:50):
essentially excavating equipment, hammers, nails.

(00:14:53):
These are all tools and they can get very sophisticated.

(00:14:57):
And one of the things that has really struck me is the sophistication of the tools.

(00:15:01):
A single developer can do an enormous amount of work now versus years ago.

(00:15:09):
So would you do it all over again?

(00:15:11):
Yeah,

(00:15:12):
anytime I think about this,

(00:15:13):
I always think of the Einstein quote,

(00:15:15):
if I had it to do it over again,

(00:15:16):
I would have been a locksmith or something like that.

(00:15:20):
Yes, the short answer is yes, I would.

(00:15:22):
And you touch on something that’s kind of a paradox, right?

(00:15:26):
Because a single developer can do so much more now,

(00:15:29):
and yet we do much more as a team,

(00:15:32):
as a team sport,

(00:15:32):
if you will,

(00:15:33):
than perhaps we ever have in our past.

(00:15:35):
So again, I guess…

(00:15:37):
That could be good or bad, depending on your perspective.

(00:15:39):
But generally speaking, we have better tools than we have ever had.

(00:15:43):
I always feel a little guilty saying this,

(00:15:46):
but it’s like we have a much bigger candy shop or a much bigger toy box or toolbox

(00:15:50):
or whatever analogy you want to use.

(00:15:52):
But we have so many more things at our disposal, much more affordable, reasonable, reachable, shareable.

(00:15:58):
And we have a much greater potential demand.

(00:16:02):
for impacting the world in some positive way.

(00:16:04):
I guess the downside is perhaps a negative way as well,

(00:16:07):
but we have the opportunity to contribute and give and do with far more reach than

(00:16:14):
we ever have in the past.

(00:16:16):
I can’t see that changing other than continuing to increase either.

(00:16:22):
One of the things I always say about this field is that you need to constantly be

(00:16:27):
learning because every day there are so many more things that become available,

(00:16:32):
tools,

(00:16:33):
languages,

(00:16:34):
changes to languages,

(00:16:36):
so many more things that you want or need to learn.

(00:16:39):
And even if we are continually learning, we’re falling behind every day.

(00:16:43):
So that can either be exhilarating.

(00:16:46):
or frustrating, depending on what your perspective is.

(00:16:48):
I choose exhilaration because I love to learn and I think many of us get into this field because we do.

(00:16:54):
It’s like that ever-expanding candy store.

(00:16:57):
You just can’t get bored because there’s so many things out there to try and to apply,

(00:17:02):
which leads to problems like we try to apply every solution possible that comes

(00:17:06):
down the pike to every problem and it doesn’t always fit.

(00:17:09):
But certainly we’re getting better and better,

(00:17:12):
better candies or toys or whatever that we can apply to certain circumstances and

(00:17:17):
find that fit,

(00:17:18):
which,

(00:17:19):
you know,

(00:17:19):
we’re in the best possible position we’ve ever been in.

(00:17:22):
And it’s only getting better.

(00:17:23):
So I would encourage everybody to keep learning, keep growing, keep enjoying the process.

(00:17:28):
Always think of yourself as the village idiot because there’s so much more to learn.

(00:17:32):
And that’s a good thing.

(00:17:34):
We’re just getting hopefully getting smarter as we go.

(00:17:37):
Yeah,

(00:17:37):
it’s interesting because when you go to Java 1 now,

(00:17:40):
really any Java conference,

(00:17:42):
if you’ve been around a long time like you and I have,

(00:17:45):
you see a lot of the older people,

(00:17:46):
but really most of the people there are young.

(00:17:50):
And I was talking to Bruno last night.

(00:17:53):
We were talking about our first experiences at Java 1.

(00:17:56):
For me, it was in 2000 at Sun.

(00:17:57):
He was talking about his experience.

(00:18:02):
But all these new people now coming in,

(00:18:03):
they have their own histories,

(00:18:05):
their own experiences that they are contributing to the larger Java community.

(00:18:12):
So Java 1 is being reborn here.

(00:18:16):
It’s coming back in October.

(00:18:18):
And so do you, how many Java 1s have you been to in the past?

(00:18:22):
You know, I’ve never actually stopped and counted them.

(00:18:25):
More than one?

(00:18:27):
Yeah, more than one.

(00:18:28):
I’m thinking around a dozen or not quite a dozen, maybe.

(00:18:33):
Yeah, I need to go back and do that.

(00:18:35):
Now that you mentioned that, I just never have stopped and thought about that.

(00:18:38):
I didn’t come in early, early Java 1.

(00:18:40):
I came in much later.

(00:18:43):
That’s a whole other story, a whole topic for another podcast.

(00:18:47):
But yeah,

(00:18:49):
some of my best and earliest memories,

(00:18:51):
interestingly enough,

(00:18:52):
are of Bruno,

(00:18:53):
you know,

(00:18:53):
with the VR Java man with the flag.

(00:18:55):
Right, right.

(00:18:56):
So many good things,

(00:18:58):
but I’ve been through several iterations of Java 1 with Moscone and hotels and

(00:19:02):
Moscone and Vegas now.

(00:19:05):
And it’s just, it’s always different, right?

(00:19:09):
So,

(00:19:09):
you know,

(00:19:10):
I know as developers and in technology,

(00:19:12):
we love change,

(00:19:13):
but yeah,

(00:19:13):
we hate change because we’re still humans and…

(00:19:16):
and all of that but but there’s always something new that you can uh find and grab

(00:19:20):
onto sure you you miss xyz because you you have great memories of that but but the

(00:19:25):
new stuff is is cool too so you find that that that new nugget that you haven’t

(00:19:30):
perhaps experienced before because it’s never been there before and it’s it’s

(00:19:34):
always something cool it’s always something new

(00:19:36):
Yeah, it’s really great.

(00:19:37):
I’m looking forward to it.

(00:19:39):
I don’t know about Vegas.

(00:19:41):
I haven’t been to Vegas in probably 25 years.

(00:19:45):
I can’t imagine it’s changed very much, but we’ll see when I get there.

(00:19:49):
Yeah, I went to a conference there a few years ago and

(00:19:54):
Vegas, like every city, it has its pros and cons.

(00:19:57):
But I will say this,

(00:19:58):
Vegas is just,

(00:20:00):
I don’t think there’s a city that’s more ideally suited for having conferences and conventions.

(00:20:05):
I just think it’s just brilliantly laid out for that.

(00:20:10):
There are so many things that you can do outside, I guess.

(00:20:13):
But realistically,

(00:20:15):
I guess from the other side,

(00:20:16):
if you never want to go outside of the conference experience,

(00:20:19):
you really don’t have to.

(00:20:20):
You can immerse yourself completely.

(00:20:22):
So it’s all in what you want.

(00:20:24):
And again,

(00:20:25):
you know,

(00:20:25):
like in San Francisco,

(00:20:27):
I would always find different restaurants,

(00:20:29):
new restaurants,

(00:20:30):
and try them in different things that maybe I wasn’t even aware of for a number of

(00:20:34):
years before or just hadn’t had the chance to swing over and eat there or something.

(00:20:39):
But, you know, with Vegas, there are all kinds of new and different experiences you can try.

(00:20:45):
But if you really…

(00:20:46):
One of the great things,

(00:20:47):
I’m diverting a little here,

(00:20:48):
but one of the great things about Java 1 historically has been that you can just

(00:20:52):
sit down and hack on some things with some friends and work through things.

(00:20:55):
And,

(00:20:55):
you know,

(00:20:56):
if you lose a whole afternoon just immersed in your code and talking to your

(00:21:00):
friends who are working through maybe a thorny issue or maybe just kind of a,

(00:21:04):
hey,

(00:21:05):
I wonder what would happen if I tried this,

(00:21:07):
you can do that.

(00:21:08):
You don’t have to go outside of that environment, and it’s right there.

(00:21:11):
So I’m kind of jazzed about it.

(00:21:13):
I hope it goes well.

(00:21:15):
We’ll see.

(00:21:15):
We’ll give it our best shot.

(00:21:17):
I think it’s going to be pretty awesome, but a lot of it is what we make of it.

(00:21:21):
So let’s do this.

(00:21:22):
Yeah, exactly.

(00:21:23):
It’ll be great.

(00:21:25):
okay well mark um looking forward to your session and we will see you in um

(00:21:32):
goodness gracious just a couple of months now in las vegas i will have links to all

(00:21:36):
your bio and all your social and everything in the show notes and people can

(00:21:41):
register for java one as well it’s coming up soon and we’ll see you there see you