Programming Throwdown - Spring Framework
Episode Date: February 28, 2017In this episode we interview Spencer Gibb and Mark Heckler from Pivotal, the company behind Spring Framework: a set of powerful enterprise Java libraries and services. Show notes: http://www....programmingthrowdown.com/2017/02/episode-63-spring-framework.html ★ Support this podcast on Patreon ★
Transcript
Discussion (0)
programming throwdown episode 63 spring take it away patrick i wanted to talk about a sort of weird tangent interesting phenomenon and that is
very small quadcopters with cameras on them so growing up as a child the you know very tiny spy
airplane spy helicopter spy robot thing was always like a fascinating um thought for uh yeah i guess for a young child i
mean in general they had remember honey i shrunk the kids when the kids got really small and they
were kind of like you know flies literally flies on the wall size yeah yeah and so so now the
technology for miniature electronics is and cheap electronics is getting so good that it's sort of culminating
this thing that's just i guess some sort of phenomenon or whatever but it's called the tiny
whoop so the tiny whoop is a small ducted fan quadcopter so the each of the so quadcopter has
four propellers on motors uh arranged in sort of a square around the center or an X, but around the center
where the electronics and battery go. And the ducted part is means there's like a sort of a,
what would you call it? Like a barrel, a small ring around the propeller that helps make it
more efficient, but also means that if you like sort of run into something, the propellers don't
stop and get caught. You can kind of bump into things.
No big deal.
Yeah.
And so this thing being so small and ducted means you can fly it around
inside and it's sort of perfectly fine.
It's light enough that it isn't really going to damage much.
I mean,
you should still be careful,
but it's not dangerous.
Like,
uh,
the,
the kind of Mavic pros,
like you see people flying around the big outdoor quadcopters,
you probably can't fly this outdoors because,
uh, the wind is too big.
Anyway, so it's a small ducted fan thing,
and then someone put a really tiny camera on it
so that it broadcasts to if you have first-person view goggles,
which are basically goggles with little TV screens in them,
sort of like virtual reality screens,
only there's not normally 3D information.
Got it.
And so you're able to sort of fly from a first person's
perspective this tiny little thing and fly it around your house and so if you sort of watch
the videos on the website or just go to youtube and type it in there's there's been new variants
where they use other base quadcopter models to make the same thing but this sort of original
tiny whoop is based off of a specific model and like it's kind of a specific setup but the idea
has kind of caught on these tiny little quadcopters that you fly around the house and you know sort of
to make a racetrack out of your dining room chairs or uh whatever that sounds amazing well how much
does this cost so i think that this setup which is the like the official quote-unquote tiny
whoop setup is about uh like 175 dollars for the kind of quadcopter but then you need the
goggles and a transmitter but the goggles and transmitters are like useful for more than just
this setup like you could use them for other stuff gotcha so that entry price is pretty high
you can do they have like sort of knockout versions i think you can get it all in for probably under a hundred dollars if you do the kind of not the kind of name brand stuff um right
and it's still a little pricey like i don't to be fair have one but just like i'm fascinated by this
it seems like it's almost within reach for this like childhood dream of mine to be able to kind
of like play a real life video game right yeah it sounds it sounds totally awesome they have basically did you see the uh racing the uh quadcopter racing it's the same it's exactly described
they have the goggles uh but these ones are much bigger and they have this crazy obstacle course
that they've built beforehand and they have to race through this obstacle course like wearing
these vr goggles it looks awesome yeah so this is basically like for me playing
pilot wings on the super nintendo right right like this is that in like real life that sounds
amazing yeah we should uh yeah we should totally like split one or like you know get a get like a
pool of people together because it's probably like all together around 300 bucks yeah but maybe if we
get you know we won't use it that much you'll get tired of it that's right that's the thing is like i mean if you're really into it you probably but
but for me it's just like i just want to play around with it for a little bit it's it's probably
so i did get a chance to try the dji mavic pro which is sort of like the newest and greatest
um outdoor kind of quadcopter with camera that a lot of people are really excited
about it's about a thousand dollars oh and it collapses down folds down into uh something that
could fit in a large pocket like think a cargo pants pocket um and it hooks up to your phone
really nice and i'll say i was surprised that is a very very well put i mean a thousand dollars is
expensive but um is a very very well put together
kind of set up the quality of the quadcopter the kind of how the interface is thought out with
using your phone as part of the controller um the quality of the video and they have a gimbal on it
to make the video really stable and they have sort of cameras and i think ultrasound sensors
or maybe just cameras to sort of look at the ground and
sort of do stabilization so they sort of can fly to GPS points and do altitude hold but then at low
levels they also do a lot of sort of computer vision to stabilize the quadcopter very accurately
at low levels and so they have even like what they call like a tripod mode where you sort of fly it
up and it it almost acts as if it's a camera mounted on a tripod just filming whatever you're kind of pointed at.
Wow.
That's amazing.
It's really slick.
So if you're interested, you can go check out the videos.
I think they even – I don't know if sold out is the right word, but I think there was like – it's been hard to get one.
It's like a back one.
They've been so popular.
Yeah.
And again, it's – I don't know.
I can't really justify because if you – I guess if you went hiking amazing places that had clearance to fly these,
they'd make for awesome videos.
I don't go enough interesting places to want to record video of where I go from a drone
or from anything, to be fair.
That would be cool while you're hiking to get, like, really cool aerial shots of you hiking and stuff.
But $1,000 is pretty steep.
I mean, it'd be dollars is pretty steep. Yeah.
And it'd be great if you could rent one.
The fact that they're becoming down to the price where it's an individual
could own it,
not like a video company or,
uh,
you know,
a group of people,
it's,
it's kind of crazy.
So I look forward to the future when,
you know,
hopefully these things continue to get better and drop in price.
And everybody walks around with little flying drones over their head,
recording everything. Oh, great. But anyway, so tiny whoop that's my like something of nostalgia sort
of triggered when i saw this and i was like oh i really want to play with one of those
so check it out let us know if you end up uh getting one or playing with that because it
sounds awesome i just realized if anyone ever even says the word pilot wings i have to play it now pretty much the rest of my night has been decided i was trying to
teach my kid how to play it but they're still too it didn't work out very well that's pilot
wings is a tough one yeah so even mario is tough you know at that age a lot of games are actually
tougher than i remember i had way more time when i was a kid than i do now yeah exactly um cool time for the news my first link was a tutorial on writing a
graphics shader so i think a while ago i had either as my tool of the show or something i had
shader toy which is a web website where it uses web gl and allows you to sort of write your own shader to to kind of
play cool animations or do some effects and we talked about it briefly anyway so this link we
have um is a tutorial for how to get started writing your own shader on and it uses shader
toy as an example and and sort of walks through the explanation of what shaders are and what they
do and how they work it also serves as sort of an intro in some levels to kind of graphics programming um and i just
thought it was a really well put together tutorial i haven't had a chance to sort of follow all the
way through but i sort of skimmed it and saw the approach they were taking and i'm actually excited
to i want to kind of try this out because low level graphics programming is not the best place
to spend your time if you want to write a game but it always seems like a very interesting aspect of doing that yeah totally yeah i mean super fun it's like parallel processing
linear algebra it's like touches a lot of like things that are really really fun yeah and it's
a lot of the when you learn about these things you'll sort of recognize them when you play games
often you know like oh they're doing this or doing that uh so anyways we'll have the link in the show
notes because i'm not gonna it's like a very long link, so I'm not going to check it out. Yeah, check it out
if you're interested in it at all. And I think it's cool. It's visual. And, you know, a lot of
these things kind of walk you through kind of the whole process, which is really cool. Check it out.
So my news is a pretty cool thing. It's some folks at Microsoft building an underwater data center.
And these guys literally did this. They have these huge pipes and each pipe has a rack,
you know, inscribed in the pipe and you have all the wires, switches and everything. Then they have,
you know, a huge high cable um coming out of the
data center right so you can get the information out but yeah the whole thing's underwater so as
a result they don't need any cooling or anything like that um it's super interesting tons of
pictures of the whole process um they actually i guess because of the heat and just being a surface on the water, it grew a lot of organisms on the data center.
So there's just a lot of sea creatures living on the surface of the data center, which is fine.
And yeah, but they talk about how they get the electricity and stuff like that.
It's a really, really cool article.
Give it a read if you have some time
no i'm distracted i want to envision where are other interesting places you can
put data centers oh um i mean i think underwater is the best because so like
i guess you could use like the thermal heat to make your power? Oh, yeah.
You could, but now cooling would be tough. Yeah, now cooling is a problem.
I mean, they do a lot in places that have waterways.
Like they basically build a dam.
It's a dam and a data center all in one.
But yeah, there's some kind of in the desert area,
and they're all run by solar farms.
Yeah, normally where cheap electricity is.
Yeah, exactly.
So if you have a data center, a cluster of many computers, and you wanted to do some machine learning on it, you could use TensorFlow 1.0, which just came out.
That's right.
That was my bad attempt at a segue.
So TensorFlow announced that they hit their 1.0 milestone.
There's a lot of sort of low-level things that I guess they improved.
And I'm not a TensorFlow developer,
but the one that caught my attention here is they're sort of feeling
that their Python API has become stable,
which means that for releases going forward,
they don't feel like it's going to change dramatically, which means you can kind of
depend on it being close to what it is today. And every time they change it, you're not going
to have to go update a whole bunch of code. Right. Yeah. Very cool. Yeah. TensorFlow is great.
Um, you know, I highly recommend it. I think, you know, I, I, uh think I've used R, I've used MATLAB,
but going to NumPy for me was great
because there's a lot of file IO and different format handling
and all these things that are really a pain to do in MATLAB or R.
You end up having to do them in C or anyways
versus Python has support
for everything. So I used NumPy for a while and Theano and all that, and TensorFlow is just
a cut above all of that. So it's really good to see that it's stable and it doesn't sound like
it's going away anytime soon. So my article is, why are Indian engineers afraid of AI, afraid of artificial intelligence?
And it's a super interesting article. I mean, it touches on a lot of different parts of Indian culture and things like that, that I knew nothing about until I read the article.
One interesting thing that it really made me think about is apparently in India, but I feel like it's also true here in the US, there's a lot of pressure to be a manager. And so, you know, if you have
to spend all of this time and energy learning a specialty, like an individual special skill like
AI, or if you want to be like a super expert in databases or just a super expert in graphics
or something like that, that's time that you could be spending getting an MBA and like
going the manager route.
And so, you know, this is true everywhere, but I guess particularly in India, it's just
very hard to get people to specialize in these sort of individual kind of specialities for this reason. Everyone
wants to get an MBA and be a manager. And I thought this was kind of interesting. I'd be
interested to hear what you think about it as well, Patrick. But I think a lot of companies
here in Silicon Valley do a pretty good job of making sure that there isn't like a you know an economic or a game theoretic
incentive to being a manager that it's basically you know you can be a manager you could be you
could specialize and they don't kind of set up the company so that one is just obviously better
than the other and so that that helps um you know, encourage more people to specialize.
But I think in general, this is just a big problem. I mean, if you look at the CEO, the CEO
isn't an AI person most of the time. Most of the time, the CEO is someone who manages
the people under them. And so there's this sort of implication that that is sort of the way to
the most fulfilling life. And it'll be interesting, especially, you know,
the demand for CS specialists in a variety of fields is extremely high.
It'll be interesting to see sort of how we deal with this as a society.
For AI in particular, I feel that the background you need,
at least currently, to be able to kind of create AI solutions or, you know, the sort of deep learning neural network, the stuff that's hot right now.
You need background in a lot of things that take just a certain amount of time spent working on those things to get to that specialty. specialty um you can kind of work in the frameworks or hooking up bits of existing frameworks together
but kind of like actually from scratch figuring out a correct solution to the problem and making
sure that the ai solution or the machine learning solution is actually appropriate for your problem
like the kind of understanding for that seems to require uh relatively compared to doing other stuff in computer science investment
and getting enough learning to be able to do that well. Yeah, that makes sense.
And so I think the manager thing is an interesting twist on it, which is to say that,
you know, you could spend all of that time becoming a manager instead, except that I think being a manager, people who,
in my experience, has been people who are good at engineering don't always want to do the things
that managers sort of need to do to be good managers. Yeah, absolutely. Yeah, I agree 100%.
So if you enjoy, you know, sitting down at code and hacking on it and solving a problem and optimizing something and thinking through clever new solutions, I mean, that doesn't say you won't also enjoy problem solving human conflict and negotiating deadlines and doing software estimation.
But those two aren't as close as I think people often assume they might be. And so often you find engineers
convert to being managers and become unhappy because they actually prefer doing what they
were doing before. And I think sometimes, like you said, often companies try to set it up so that
you don't have to do that. Like you don't have to become a manager to get a promotion,
or at least in most of the engineering companies I've worked at, that hasn't been the case. You can still get promoted as a technical contributor.
But it often seems that there's more competition for the technical contributor than, say, a manager.
But I don't know if that's just perceived and that management is actually also very tough
because the buck sort of stops there.
And if you mess it up you know it's
very easy to kind of not get fired i don't think but you know just kind of not get the sort of
credit or the compensation that you would want because your scene is not performing yeah yeah i
think uh i think there are pros and cons to both um i actually really i feel pretty good about um this this issue like the issue being
you know in this particular article uh people you know everyone wanting to go into management
but i think you know the the trend is already kind of shifting the other way like there's
a lot of people with mbas and uh so I think the pros of specializing,
even as an individual contributor,
are starting to really stand out.
And so my guess is this sort of like pressure
to like climb the ladder by being a major
is going to get kind of less and less.
Yeah, we've never really talked about it,
but I've always struggled to see that we haven't kind of come and less yeah we've never really talked about it but i've always struggled to see
that we haven't kind of come across a great and i don't maybe other industries have it or don't have
it but there never seems to be a consensus on like what is a good team structure so often you end up
on a project that says they were trying to be very flat you know very essentially very large
numbers of engineers to relatively few managers.
But then there seems to be some pendulum that swings back the other way and says that's actually too difficult for the managers
to sort of figure out what's going on.
So then we need to organize the engineers into groups.
And whether you like it or not, that sort of works away from flat
and into sort of hierarchies and then back and forth.
This is sort of way off topic of the article.
But I just sort of have never topic of the article but i just
sort of never heard or seen or found a company that is trying to grow and change um maybe stable
companies is different but companies which are under growth and change and new projects and new
work and that kind of stuff that have found a good balance of what the a good team composition
really looks like yeah i agree 100 super hard problem
um yeah i think i feel like every i feel like there's progress like you know i definitely see
i feel like things are better now in general when i hear anecdotes from people and things like that
than you know maybe five or ten years ago um but yeah it's still totally unsolved problem all right time for book of the
show my book of the show is the divine comedy which is a very old book it's written by dante
alighieri and it's about um it's a fiction book about his uh journey into uh the center of earth which is hell so in his book he
goes through all the different I can't remember it's like the rings of hell I
think it's yeah the rings of hell he gets to hell which at the center of the
earth he actually passes through that and I guess once you go through in this
story once you go through the center of the earth,
you come up on, you start to approach the surface from on the other end of the earth, right?
And that's where purgatory is and so on and so forth.
And he explains all this.
The reason why I'm reading this is just over the years from you know everything from game of thrones with the giants to uh um
to like uh net hack and dungeon crawl these games that have literally have the demons and the fiends
from from from uh dante's uh the divine comedy um in in them and uh you know it's just you see the
same kind of it's kind of like reading hitchhiker's
guide to the galaxy like you see so many of these references like greek mythology and things like
that that are all contained in in dante's inferno and other books um then i felt like i was going
to kind of bite the bullet and read this sort of classic um it's pretty hard to read because the
whole the entire thing is a poem
it's written in like a poem format so it's just pages and pages and pages of poems um so yeah but
i'm making my way through it but one kind of cool thing i found out along the way is and i remember
hearing about this every now and then but i never really looked into it is project gutenberg which
is basically uh all of the public domain books
that they can get their hands on, which I think they're up to like 53,000. They have curated in
like electronic format and it's very high quality. The photos are high quality. They have Mobi,
EPUB, PDFs. They have all the right formats um and you know they had the divine comedy and if if
you want to read a book like alice in wonderland or any of these books 1984 any of these books that
uh you know is in the public domain um you can get it from this website it's probably the best
version you're going to get um so yeah that's that's's my book of the show. Yeah. You weren't kidding about old. It was written in 1320.
Yeah.
Now they have like, uh, different versions.
Obviously it's written in Italian.
Um, the version, uh, that I'm reading is actually relatively recent.
Like I think it was written in the past 50 years or so.
Um, but yeah, it's still like pretty hard to read.
My book is not old.
It's actually quite new.
And it's A Night Without Stars by Peter F. Hamilton.
And this is, I've had several Peter Hamilton books on 65, or no, 63 episodes.
I'm sure I've had more than a few.
And this is part of his Commonwealth saga,
specifically the Fallers part of that.
He has sort of a trilogy and is it duology?
I don't know, whatever, two books.
Maybe.
So I think in his Commonwealth saga,
there's like a duology, a trilogy, and then this one is a duology.
So there was a previous book,
and then this is the second book,
and this is called Chronicle of the Fallers.
The first one was Abyss Beyond Dreams.
I don't know.
These are just words.
I have to look up.
The titles sound awesome.
Abyss Beyond Dreams.
And this is Night Without Stars.
And it's about the same.
So it's the second book to this other one.
And it kind of wraps up the series.
And I guess I was reading it.
It sounds like he has sort of saying this is the last book in the whole commonwealth saga um so if you've not read
anything in peter f hamilton's world don't start here this is sort of like very very late slash
maybe even the end of the commonwealth saga um all together but the world he's sort of created
in this sci-fi um book which they're all they're really big books
so uh i think in total like with all of the books it's something that somebody said like
8 000 pages or something oh 5300 pages sorry um 5300 pages in total so it's you know it's an
investment but um he he creates a world that is deals with a lot of things that i find very
interesting so sort of what happens when a society goes post-scarcity that you know things are very
different why do people do what they do when humans can augment their body with you know
technological enhancements some people want to some people don't some people take it to an extreme
um some people there sort
of becomes a middle ground of how you modify your body. What happens if you can sort of, you know,
rejuvenate your body down to a younger age. So, you know, aging becomes sort of optional.
Like what age would you sort of walk in at and what age would you stay? And, you know, if you
wanted to kind of become a little bit of an older person, it's almost becomes an eccentric affectation that like, oh, that's a 45 year old person.
Like, wow.
Like, interesting.
I wonder why they let themselves be 45 instead of staying at 20.
Oh, wow.
And there's a lot of interesting concepts.
And then there's aliens as well and how aliens can be so very different than humans but also sometimes the same uh anyways
there's a lot of good stuff in his book and he has it's really thought-provoking after i always
whenever i finish one of his books i always find myself like really excited to like invent
something or like i want i want the thing that he's describing in his book you know i want to
like go i guess sort of isaac asimov um or arthur c clark sort of
did the same thing right they described satellites before satellites were a thing they described
space travel before we went into outer space and people kind of i could very much imagine feeling
the same way now me reading their books i appreciate them they're good books but they
don't inspire in the same way because they sort of described
something that has already been described by others and that we've also sort
of entered into that future.
Right.
But this,
I sort of feel maybe gives me the same feeling that people reading those had,
you know,
30 years ago,
or I don't know the right number of years ago.
But kind of reading about satellites before the first Sputnik went up,
right.
Would have been just crazy. And so for this, I sort of reading about the stuff the first Sputnik went up, right. Would have been just crazy.
And so for this,
I sort of reading about the stuff that it's like,
well,
I really hope one day people are inspired to co-invent these things.
Yeah.
It sounds awesome.
Yeah.
I wonder,
wouldn't it be crazy?
I mean,
if they invented a way to slow,
you know,
to,
to slow aging,
but they did it kind of so late that we're already like 60 or 70
i'd probably just uh i don't know it's a tough call um but yeah that book sounds awesome i'll
totally read it once i'm done reading about hell i'll read it well don't go read this one go back
and read i think the first one is pandora's box oh okay pandora's star sorry pandora's Star. Sorry, Pandora's Star. Yeah. Is, I believe, the first one in the Kamen Rider Saga.
So.
Cool.
And I will read them using Audible.
I've started kind of getting into audiobooks.
The biggest thing was, like, I find my eyes are hurting.
And really, it's because I think I'm on my phone too much.
Like, I used to be on the computer maybe six, seven hours a day. And to be on the computer, maybe six, seven hours a day.
And now I'm still on the computer six, seven hours a day, but I'm on my phone maybe four hours a day.
And it's just too much. I don't know if those numbers are totally accurate, but I realized
that I'm just looking at screens way too much. And so I've started doing audio books. I've also started getting into drawing.
I, I, uh, uh, getting into a pencil drawing with an actual pencil instead of using, uh, you know,
Photoshop. Um, and, uh, yeah, I think Audible is pretty awesome for being able to listen to the
books and kind of just close your eyes and, uh, or if you're driving, uh, don't close your eyes,
but, uh, not not not crash into anybody
um but be able to like you know kind of uh give your eyes a break from the computer screen or the
kindle or what have you yeah i mean i love it for my commute so this book that i was just saying
that i i just finished a night without stars is 26 hour 26 and a half hours long so you know you
could sit there and read a book like you said but'm already, it's like three days of driving in the Valley, right? Yeah. I mean, I could tell you it's
unfortunately not as long as I would wish it was to take to finish as I finished them more quickly.
I'm always surprised at how fast I make it through a 40 hour book or a 25 hour book or a 20 hour
book. Um, and then when you get kind of eight hour books, which are kind of normal novel size, it's just like, you know, yeah, that doesn't even last a week. Um,
and, uh, anyways, but yeah, so listening to audio books is great to pass the time. If you,
if you commute on the bus or you drive or, um, you know, spent any amount of time where you kind of
like, like Jason said, you either don't want to sit there staring at your phone for the length of time or for me like on a bus or train like i get sort of sick looking at my
phone um from the vibrations then audible is a great way to still sort of enjoy enjoy content
and of course podcasts but um you know it was a great way to enjoy books that you might otherwise
not get a convenient opportunity to read that's right um we also so check out audible you can go to
audibletrial.com slash programming throwdown all one word and we have a link to that in the show
notes as well and you could get started on your free trial um you can also support the show through
patreon um patreon.com slash programming throwdown. And that really helps us out.
It goes directly to server costs, setting up the T-shirt stores, things like that.
We actually use tons of terabytes of data a month.
And so the contributions help cover that.
We also occasionally do raffles.
A couple of lucky subscribers got a couple
t-shirts i verified the t-shirts actually got there so uh um so you know who you are we called
you out last show and you should have your t-shirt if if by some crazy reason you don't
and someone else picked up your t-shirt let me know but that shouldn't happen. All right. Well, time for tool of the show.
Tool of the show.
This is a total cop-out.
But I built my own tool and I want to talk about it.
I don't think that's a cop-out. I feel like that's overachieving.
Maybe, yeah.
So basically, I wanted a SSH-like thing that lasted forever.
It survived. I'm always on the forever. You know, it survived.
Like if I, you know, I'm always on the go.
Like I'm on my laptop, but I'm SSHed into a machine in a cluster where I do all of my work.
I don't do any work on my actual laptop.
All my work is done remotely.
And so I'm SSHed into that machine.
And so, you know, I'd close my laptop, I'd go to a meeting,
I open my laptop, and the connection's dead.
Or I close my laptop, go to on the shuttle,
open my laptop, connection's dead.
And you have to do this goofy thing with SSH,
you do like tilde period to kill the connection,
because it doesn't think it's dead.
And you have to go back into ssh they
have to use screen and it's just it was just a huge pain so uh um so yeah i built this thing
called eternal terminal um it's pretty cool it takes a little bit of setup i built a little
website explaining how it works um you have to install something on your uh laptop or on your
you know client you have to install a piece of software on the server
as well. And then it will actually use SSH to kind of start the connection. So you still have
to have an SSH server, but most people do. It'll kind of negotiate the eternal terminal connection.
And then after that, you're solid so um from kind of the user perspective
it's just replacing ssh with et so you do et you do the location of the server um and it will do
everything else handle all the negotiation and then boom you have a terminal um and it's just
there forever so if you open up your laptop i
actually closed my laptop i had a terminal running top which people don't know top is this unix
command that every second or two it prints out the you know state of the computer like the
processor usage and things like that um so i had Top going inside of an eternal terminal. I closed my laptop.
I opened it about three days later and it actually like fast forwarded through all of the Top. Like
in other words, like all these numbers started flying by and basically Top was catching me up
on the state of my machine, you know, for all those seconds for the whole
three days. But it fast forwarded all the way to the present and then it just kept going.
So I'm pretty happy with it. I'm still working on getting it like into Ubuntu and Debian and
some of these, you know of these Linux OSs,
like getting it built in, which is really interesting.
I've never done that before.
So in the meantime, you have to do a little bit of finagling,
get it to work.
You have to install an RPM from file and stuff like that.
But yeah, it's coming along and it does the job.
And if you do a lot of SSH, check this out.
After that overachieving bit of awesomeness,
mine is simply a website, myminifactory.com.
If you've heard of Thingiverse, this is sort of similar.
It's a place for 3D models.
I have a 3D printer.
This website, I don't know.
Thingiverse has sort of almost
everything but it's sort of hard to find the kind of best stuff um this is a little more selective
in what they have it has a little less but it tends to kind of be more interesting uh on average
i guess um and so if you have a 3d printer or want to be inspired as to why you should want a 3d
printer then you should check out myMiniFactory.com.
They have all sorts of weird smash-ups between different funny characters,
like I'm looking at apparently a bender head statue on top of a Buddha.
Okay, I don't, yeah.
Oh my gosh.
Interesting.
There's lots of sort of fan art for, you know, lightsabers.
Here's a magical fishing hook from moana
um you know just all sorts of interesting trinkets i don't know they're particularly useful
um but they're sort of fun and um if you like kind of using a 3d printer to print out
things that uh are sort of unique that if you didn't have a 3d printer you probably wouldn't
have then there's a great site to go to so can So if you print a 3D toy for your kids,
let's assume your kids are over the stage where they eat everything, right?
Is it safe?
If my son is running and he falls with the toy,
is it going to splinter and disarm or something?
I'm not a lawyer.
I would not give child safety advice yeah this is yeah not
good point okay yeah for this total disclaimer here this is our opinion and don't try i mean i
let my kids play with them the pla so while you're printing so my printer lives in the garage um and
i have webcam set up to monitor it um because there is some sort of sometimes when you're doing printing
they're sort of grinding gears on the plastic and the plastic kind of gets into little bits of dust
that float around in the air and you wouldn't want to breathe that in um and depending on the
kind of plastic you're printing but the most common ones are abs and pla um and abs is often
used for like drinking water pipes.
And PLA is used for the compostable plastic cups, if you ever see those.
Oh, okay. It's like a corn or can be corn based biodegradable thing.
And so I, you know, my kids don't put things in their mouth.
So I'm not too worried about it.
If they tripped and fell i mean it's they have little
die cast toys as well i you know this seems less bad than that yeah that's true but yeah i'm not a
lawyer i'm not a child safety expert you you're yeah yeah your kids will probably die if you give
them toys to play with if you give if you have your kids if your kids have any fun they might
die you know i had a chemistry set that actually had magnesium strips and like you could make napalm and all this stuff.
Like it had instructions for making napalm.
And I got a chemistry set for my cousin's kid.
And it was like nothing, like everything was edible.
Like you can actually do anything.
All you could do is make a volcano or something.
It's like things have gotten so tame.
Yes.
Anyway.
I don't disagree, but I am not a lawyer.
I will not recommend you teach your kids to make napalm.
Okay, fair enough.
Yeah, I should probably shut up.
I should delete my browser history.
So, yeah.
So now we have a really cool interview. And so we're gonna take it away.
All right. Hey, everyone. So we're here with Spencer Gibb, who's a principal engineer at
Spring Cloud and Mark Heckler, who's a developer advocate for Pivotal. And we're going to talk all
about the Spring Framework, which is something pretty cool. I've definitely used it in the past.
A lot of people, if you're a Java developer, you've used it or you at least know about it.
But now we have experts who can really tell us, kind of fill in all of the holes in our sort of Swiss cheese mental model of Spring.
So kind of, you know, Mark and Spencer, kind of just give a brief intro of yourselves.
Kind of what do you do at Pivotal and what parts of the Spring Framework you're most interested in?
Okay, well, I guess I will start.
My name is Mark Heckler. I'm a developer advocate for Pivotal.
Pivotal covers a lot of ground.
And the two big things that Pivotal is probably known for, among many things,
are the Spring Framework and the and the Spring portfolio of development products, as well as Pivotal Cloud Foundry.
I do kind of deal with both of those, but I focus primarily on the Spring portfolio.
And I get to go out and my background is in development, so I get to go out and talk to a lot of developers about what they're doing and how they can hopefully do it better with Spring.
My name is Spencer Gibb. I'm one of the leads on
Spring Cloud. Spring Cloud is
focused on eliminating some of the boilerplate that comes
with distributed systems. Often you find yourself
in that situation
when you have a microservice architecture
and we try and eliminate some of the heartache
and problems that come from that.
Cool, that makes sense.
So when you say Spring Cloud,
is this like interfacing with AWS
or is this more MapReduce Spark type computing?
Spring Cloud,
the core of it deals with things like service discovery
and configuration, distributed configuration
and circuit breakers
and different things like that,
regardless of which cloud infrastructure you run on.
Gotcha. Cool. Very cool.
So if you had to give, I mean, I know Spring is just a massive framework.
I've seen so many things come from Spring.
Like one thing I used from Spring was an OAuth plugin
where you could log in through Facebook, log in through Google.
But Spring does so many different things.
If you had to sort of
describe the Spring Framework in a few sentences, how could you do that?
Well, I'll take a first shot at this, and Spencer can fill in wherever I may leave a gap. The Spring
Framework kind of started off as a way to fix a very bad situation with enterprise Java.
And, of course, it grew to provide a lot of capabilities.
And then, of course, various different components
or different parts of the overall puzzle came into being to solve different needs.
So you have things like Spring Cloud,
which covers an imperative model of cloud development.
And you have things like the new project reactor, which covers
a reactive space, and you have Spring Data and Spring Cloud OAuth and Spring Security
and several other projects which were incubated.
And if sufficient value is seen, if there's a lot of folks embrace that and see that as
meeting a real need. Of course,
usually that's kind of folded into the overall project going forward or the portfolio going
forward. From my point of view recently, I've thought of Spring as it's a tool to eliminate
boilerplate, eliminate those repetitive things you do over and over and over um i can't remember which which
person on the team said it but when you use spring and in particular spring boot and spring cloud
it's like pair programming with the whole spring team right you're nice they're part of they're
part of your team and you don't have to worry about all those things that they do. You get to focus on what James Waters calls the value line, right?
Whatever your project does that is unique
rather than all this stuff that everybody does over and over and over.
Yeah, that makes sense.
I mean, I know just one of the first things that made me think about things along that line
is when I found out about protocol buffers or Thrift or one of these,
Avro or any of these sort of container frameworks.
And I realized, oh, I don't have to write
2000 lines of code to take these Java objects
and put them on the hard drive
or send them to another computer.
That they've just found some way
where I can write a couple of lines of code
and protocol buffers will do so much
work for me.
And Spring is much the same way where, trust me, you don't want to learn about OAuth 2
and redirect URLs and tokens.
And you don't want to have to deal with any of that.
I'm pretty sure that won't be whoever's listening.
That won't be core to your business.
Your business is going to be about making a cool app or or a website you're providing some entertainment or some education
uh to to you know a broad set of people not you know trying to understand tokens and so using you
know that element of the spring framework uh can greatly help that So how does Spring then relate to, say, Apache Commons,
right? Apache Commons is also sort of a large collection of libraries that, you know, kind of
enable developers. So is Spring just like kind of a similar vehicle, but more geared to enterprise,
or kind of what are the differences there? Well, I'll tag in first on this. I feel like a lot of the value that the various components bring to the mix is an opinionated approach. Sometimes you hear that, and a lot of times people of doing something, what we try to do is provide a very clear-cut path
with kind of a path of least resistance
to cover that 80% to 90% of use cases.
So for the many, many things that we do that are very similar across the board,
we want to make that very easy for you to do with a minimal amount of code.
But in the old days, the old bad old days of frameworks,
typically you had one way to do things. And that was the framework way. And if you didn't do it,
the framework way tough, you know, you just couldn't get it done with that that particular
tool set. But with an opinionated approach, we want to solve that 80 to 90% use case very easily.
And yet still, if you need to color outside those lines, we want to get out of your way and allow
you to meet those needs as well.
So when you talk about things like Apache Commons or other open source libraries, typically they'll either try to, and I'm kind of painting with a broad brush here, but they try to either provide a lot of different ways to do things or one way to do things.
We try to provide that one way very easily and yet still provide you that escape hatch to let you do the other things fairly easily but with a little more effort on your part and spring framework you know at its core
is a dependency injection framework and then things have been added on right like uh spring mbc
which is the the web framework
and things like you've talked about, like security,
and there's also things like Spring Data and other things.
And each one of those in and of itself
could be of comparable size and complexity
to something like Apache Commons.
And there's some slides from Phil Webb one of the the leads of Spring Boot which he he paints a
picture of spring framework he puts up a picture of a bunch of ingredients for a cake right eggs
flour sugar vanilla all those different things Spring Boot is a baked cake, right? Like Mark talked about, it's the, it will get you most
of the way there. And projects like Spring Cloud, where Spring Boot focuses on an individual process,
Spring Cloud kind of focuses on multiple processes and the coordination between those processes
at a high level. Cool, that makes sense. So typically when you think about Spring,
you think about kind of web, you know, web frameworks and web services. And that seems
like that was a lot of the origin. It sounds like the origin was initially dependency injection.
But when I found out about it, it had gotten into web. But now it sounds like it's going even kind
of beyond web to a lot of other kind of typical use cases for Java engineers?
Yeah, there's beyond web things like Spring Data, where Spring has a template pattern
that it uses that makes interfacing with different technologies simple.
There's JDBC template and Rabbit template for interfacing with RabbitMQ, but there's also interfaces
to different styles of databases,
NoSQL, key value stores,
document stores.
There are
stream-related
technologies, so using
interfacing with technologies like
Kafka and, of course, RabbitMQ
and Redis.
So it's becoming quite broad and useful in anywhere from large projects to small ones
because of the ease of use of Spring Boot.
Cool. That makes sense.
So there's Pivotal, which is the sort of company that is leading the charge on Spring.
What are some other projects that Pivotal is really involved in right now?
Well, Pivotal are, I guess, as a whole, huge contributors to Apache Tomcat.
We also have several projects that we've either brought under our fold in terms of stewardship or have created ourselves,
things like Redis, RabbitMQ, GreenPlum.
We also have contributed a lot of code,
a lot of hours and time and commitment
to Cloud Foundry.
Cloud Foundry is run by a foundation.
You have big players like IBM and HP
and GE and CenturyLink and, of course, Pivotal, among many others, who have come together to create an open source cloud platform.
Pivotal is one player in that, but a very strong player in that as well, again, with time and resources behind it.
So that's kind of a smattering.
But, of course, Spring engineers, Pivotal engineers in general
have their hands in a lot of things and contribute.
The open source ethos is kind of interwoven with the company and with all of us.
So I think we all try to contribute where we can.
Cool, that makes sense.
I think you kind of alluded to this, but who are sort of the big users of Spring?
Who are sort of your heavy hitters who have the most, the
P90, right? The people who have the 10% most servers and users
who are using the Spring framework?
I don't have a huge list of customers, but I
can tell you some that I've visited that have
publicly I can tell you some that I've visited that have publicly announced
they're using a use of Cloud Foundry and Spring as well.
So I've personally visited Comcast and was just at Ford last week.
So there are some really big companies that are using Spring and Cloud Foundry as well.
Yeah, just off the top of my head, I can think of folks like Home Depot, Allstate, JPMC.
I know I actually kind of went looking because you find the Spring framework and Spring Boot and various components that are in use in different places that you wouldn't necessarily hear a lot about,
but they're just any place that has a need for a robust backend processing
or a cloud capabilities in-house or on-premises or in public cloud,
you typically see Spring employed in some capacity or another.
And I kind of went through the, did a little bit of behind the scenes searching and saw
that most of your major players that you might imagine in Silicon Valley and throughout the
country have used Spring in some capacity or other.
So as far as the penetration among those different companies, I have no idea, but I do know that
it's pretty widely used pretty much anywhere you can
imagine.
Yeah.
There are some,
some large Chinese companies that,
that use spring as well.
And,
and I know a lot of companies that use spring,
they just aren't paying customers to pivotal.
So there's not a lot of PR that goes with that.
So there it's, it's in loose's not a lot of PR that goes with that.
So it's in loose use in a lot of places.
Yeah, that totally makes sense.
Yeah, it's like for everyone you see, there's probably 49 that are using it that you don't know about because it's open source, right?
Until you get that pull request with 40,000 lines from some company that you never knew
existed, right?
Exactly.
So let's say someone is fresh out of college.
They want to build their first kind of cool website, and they want to use Spring.
They might know Java, but I've never heard of Spring other than this podcast.
How would you recommend
them to get started? What's sort of the hello world of Spring?
Well, one thing that I think we do a really nice job with is creating some really good
bite-sized getting started guides, as well as some more in-depth guides. And if you go to
spring.io slash guides, I believe it is, I'll verify that and
we can link to that in the show notes. But we have a lot of bite-sized use cases that someone
can say, well, gosh, how do I create a REST API? How do I work with Redis? How do I work with Kafka? How do I maybe plug into a
NoSQL data store behind the scenes using Spring Data? And we have these kind of bite-sized guides
that step you through that, typically using Spring Boot, because Spring Boot makes all of this much
more easily consumable and approachable. So the website you typically start with to create an empty shell project based on dependencies you specify is the Spring Initializer site, which is start.spring.io, which doesn't generate any code, but it will create a shell project that gives you kind of a running start at your application.
And then, of course, the getting started guides give you that kind of walk alongside you holding your hand and get you started with it. And then of course, we have a
really good Spring Central Twitter account, as well as a good YouTube channel, which give you a lot of
very short as well as very in depth video guides to kind of get you up and running and started.
And of course, past that, we're on Gitter, we're on Twitter, we're everywhere you might want to reach out.
And we encourage that from the community because sometimes someone will come up with a question that we've perhaps never thought of or perhaps it's not a typical use case, but it's something we want to consider.
Or they may, again, as you said, ping us with a pull request.
And I always tell people, get the bits, play with the bits, get the code, you know, play with the code, look through the code.
And if you see something we're missing, let us know.
And if you maybe want to submit a pull request, do that as well, because it's all out there.
We, you know, that's that's kind of how you get up to speed and running and do useful things is to start working with it.
So we try to make that easy as well.
Cool. That makes sense. That sounds great.
We'll definitely include those links on the show notes. So if you're listening and you want to check out those
guides, probably the best way would be to click on the show notes link in the podcast notes,
and then we'll have links over there. So I know that Apache has the Apache sort of incubator
for projects that are kind of not really ready for primetime or not really ready for enterprise.
So if you could spill the beans, what's sort of an amazing kind of spring project that's in incubation right now that people can really look forward to?
I don't know that there's much that's under wraps. A lot of what we plan on
implementing this year, we talked about at Spring One Platform, which is our Spring and Cloud
Foundry conference that happens once a year.
And so a lot of things were talked about then,
and the roadmap was given generally.
But some of the things that are ongoing,
Spring 5, which is well underway, has a number of stories.
It will be a baseline of Java 8, which is a fairly large shift from the 6, 7, and 8 support in the older lines.
And then Mark alluded to it a little bit before,
but there's a reactive story.
So allowing access to resources in a non-blocking manner
that will be throughout Spring Framework.
Their Spring Boot version 2 will build upon that
and have a...
There's a new...
If you've worked with Spring MVC before,
you kind of have the annotation-based way of doing web services, if you've seen that.
But there will also be a functional way of doing web services.
So some of those people that may have experience in another functional language that is used to that, especially with Java 8. They'll be able to have a similar experience
while having all of the same history and stability
that Spring Framework gives you.
Cool. That's awesome.
Yeah, I really love the, I mean, I've used reactive programming.
I've used Angular before on JavaScript side.
I've seen React.
There's, I think, a Java RX or something like that.
RX Java.
RX Java, that's right.
I haven't actually used it, but I love the idea.
It's kind of like an Excel spreadsheet with a bunch of formulas,
and when you change the numbers, everything else just magically is computed, right?
So there's a lot of appeal to that yeah the the original reactive extensions came were from microsoft and the folks
at netflix decided they they wanted something similar but they were heavy jvm users so they created RxJava and now there
are a number of
reactive implementations in
various languages and so
yeah it's
in fact there's a
reactive streams project
which is an interoperability
interfaces
between some of these projects so
for example if you have an RxJava observable,
but you're using, you want to go to a reactor flux,
which those don't matter,
but there are interfaces that they both implement
that you can get some compatibility between them.
Cool. That's awesome.
So besides Spring Framework, what other things do you want
kind of listeners to check out? And we mentioned Cloud Foundry. That's definitely a good one to
check out. Are there any other things that Pivotal is working on or just things where
you kind of have this amazing tool or library or language and uh and uh you feel like it it uh is neglected like
an unsung hero uh that that that uh you'd want to bring up well i i'll jump in here again it's
kind of hard for me to choose favorites you know you always hear that from a parent i guess but
uh although i'm not i'm not really the father of any of this, I just am one of the many, many, many beneficiaries, really, and ardent fans, so to speak.
But you have so many things in the Spring framework in general, in the Spring portfolio, that were developed to solve a real need.
They're meant to be workhorses, not racehorses in a lot of ways.
I keep going back to Spring data. I think Spencer's
mentioned that too. It's not overly sexy. It's not necessarily something that you'd really
get excited about using per se. It's just that it works so well that you find yourself coming
back to it and coming back to it over and over for projects. And I see a lot of our portfolio
is solving really strong burning needs, but there's not a lot of sizzle there.
It just fills a gap so well.
The one thing that I'm kind of excited about is that reactive story, because for a long time, I think the Java ecosystem has kind of taken it on the chin on the reactive side of things.
And, of course, RxJava being a very noticeable exception in that regard.
But with Project Reactor,
we're actually implementing reactive capabilities
throughout all of the Spring framework,
all the way from the lowest tier,
you know, storing the data,
all the way up through to a web client.
So that is,
it's a Herculean task, and we're implementing
that in parallel with the imperative model that we already have in place that's kind of battle
tested for well over a decade, significantly over a decade. And we're implementing those in parallel
so that people can bring their institutional knowledge, their existing knowledge, and have it
immediately apply and to not have to convert
everything over to where it's an all or nothing. So that kind of excites me because I can use the
tool that makes sense when it makes sense to use it. And that's all any of us want, right?
Yeah, absolutely. I know there have been, I mean, every time, you know, a framework or language
does something that isn't backwards compatible it's always extremely painful
I mean we still can't
just as a
community
get beyond Python 2
it's still hard to get everyone on Python 3
it's been what I don't know
exactly how long but it's got to be at least
5 years if not longer
and the same with Angular
I mean Angular went to 2.0,
and it's not backwards compatible. And it's just, it's very hard to migrate the whole community over.
Yeah, and you don't want to lose that expertise that you've developed as a developer. You don't
want to feel like, well, that's great, but everything I've done up to this point, just
throw it away, because everything changed out from under me overnight. You want to take advantage of all the neat new stuff but you don't want to feel like you have to throw away
all that you've learned and the lessons and the the battles you've won to get there and that's
what we hope to accomplish by providing kind of the best of both worlds uh in parallel packaging so
cool um so uh well a couple of questions aboutal before we kind of wrap up, um, uh,
you know, where's Pivotal located?
Uh, are you guys hiring?
And, uh, uh, whether you're hiring or not, what's the best thing about working at Pivotal?
If you're not hiring, you can just make everyone really jealous.
Um, if you are hiring, it could be a selling point.
We are hiring and I know we're hiring specifically for the Spring team that I know of.
So we are hiring.
Pivotal came from different projects that had been acquired by EMC and VMware.
And so they spun those software projects out into Pivotal. So Pivotal itself is
only three or four years old, but the projects that are in them are older than that. I believe
headquarters in Silicon Valley with offices all over the world, really, one of the parts of pivotal is a consulting arm they don't
they have a different style of of teaching and i saw this at ford rather than just having a class
you know a week boot camp where they come in and show you how to their way of doing things
the way they like to do things is pair with the company and show them, build something real with them and
show them their processes and things, how they do that. So that's one of the things that,
that Pivotal does as well. Cool. Sounds good. Great. Thank you so much for your time. This is
super interesting. I've definitely used a lot of the Spring Framework in the past. So,
so thank you for building it as well. I've definitely, it's made a lot of projects I've definitely used a lot of the Spring framework in the past, so thank you for building it as well.
Definitely, it's made a lot of projects I've built easier.
Patrick, do you have anything burning?
I feel like I...
No, I mean, I think that was awesome.
You did a great job.
Thank you, everyone, for being on.
Well, thanks for having us,
and thanks to the Spring community for being an awesome community
and working with us, and thanks for the Spring community for being an awesome community and working with us and thanks
for the pull requests.
Alright, we'll keep them coming.
The intro music is Axo
by Binar Pilot.
Programming Throwdown
is distributed under a Creative Commons
Attribution Share Alike 2.0
license. You're free to
share, copy, distribute, transmit the work, to remix, adapt the work but you must provide an attribution share alike 2.0 license you're free to share copy distribute
transmit the work to remix adapt the work but you must provide attribution to
Patrick and I and share alike in kind