Description:

On this episode of the podcast Script talks about getting “real”.  He also touches on “Open Source 101”, a conference he recently attended in Raleigh, NC. After an important fauxmercial message, he interviews Raymond Camden, an Evangelist for IBM.  Ray discusses his recent interests in static site generation and in serverless applications.

You can find out more about Raymond on his blog (https://www.raymondcamden.com).

Subscribe:

google-play-badge

Transcript:

Script:
Welcome to Episode 4 of the “Wake Up! With Script Van Winkle” podcast. My name is Chris Laning, aka “Script Van Winkle”, but my friends call me…..very rarely.

Now I am going to start off this episode with a mea culpa of sorts.  When I started this podcast I thought it was some grand stroke of marketing genius to create the Script Van Winkle persona. You know, the grizzled old developer who got way behind in technology and is desperately trying to play catch up.  Though come to think of it, the only part that that is made up is the name..

Well, then in episode 2 I got the really bright idea to add an acerbic sounding and very bad NY accent to the character.  Now I don’t drink so I really have no excuse for what I was thinking.

Lately though, I have come to the realization that these days, especially in this political climate, with so many people on both sides of the aisle puffing themselves up on Social Media and the like and talking tough from behind their keyboards, that being genuine is what stands out. Forgetting insecurities and opening up to each other and just being….real.  So while I am still hoping my self-manufactured nickname sticks, I am dropping the terrible accent and phony hard edge and am instead going to focus on the content more than the delivery. Don’t worry though, I still plan to keep cranking out the funny commercials!

This podcast will still document my journey to catch up with the state of the art, but I am going to steer it more in the direction of interviews with people about a wide variety of subjects throughout the profession.  This is because part of my journey also involves me being burnt out with what I am doing and my searching for a new passion within the community.  I know I am not alone. We all burn out from time to time and need to retool, revamp, and go in search of greener pastures.  So hopefully you will want  to explore those things along with me.

Ok…enough of the touchy feely stuff. Let’s get down to business!

A couple of weeks ago I attended an event called “Open Source 101”. It was a one day conference held in Raleigh, NC that focused on sessions around the basics of open source and encouraged attendees to jump in and become part of the open source community. It was put on in partnership with the folks that run the All Things Open conference,a huge open source centered conference which is held in October in Raleigh as well. It was a great turnout and featured attendees ranging from the college-aged to the decidedly more seasoned.  The attendees also covered the gamut from highly accomplished developers, to experienced developers looking to add to their skill set, and  yes Junior Developer I saw you there too.  But there were also attendees who weren’t developers at all.  Some were managers looking to understand their development teams better and some were people looking to switch careers and become developers.

Now I am not going to lie.  I did come out of most of the break out sessions I attended a little disappointed. It is quite possible that I set unrealistic expectations on what I would get out of each of those. So that could be on me.

The day also started with not one, not two, not three, but a whopping four “keynote” presentations! Now most conferences I have attended have either exactly one keynote or at least no more than one a day. But they kept using that word…and I do not think it means what they think it means.

While I was disappointed in some of the aspects of the conference that does not mean I regret going. You see it gave me a glimpse into another world of programming I have only touched upon.  Certainly I have consumed a few open source libraries over the years and even work with both an open source content management solution and shopping cart solution. But there were a lot of terms and products being thrown around that I sheepishly admit I did not know.  I felt like fish out of water.

The reality is that most of us work in our own little subsection of the programming verse. Maybe some of us have our foot in one or two other subsections as well either due to having multiple clients, or having personal projects quite different from our daily work ones.  And I am sure there are a few people who have a foot in several of the subsections simply because they are driven by a passion to know and learn as much as they can.  

In most cases though we are fairly familiar with the products and people in our subsection and blissfully unaware of those in others. This point was driven home to me in an interesting way at this conference.

As I mentioned before I have programmed in ColdFusion for nearly all of my 20+ year career.  That is the subsection I am most familiar with.  Until recently, the conferences I have attended were either entirely or mostly CF-based.  At those conferences, all you had to do is  simply say  the name “Ray”, and everyone knew who you were talking about.  Raymond Camden was a rock star in the CF community!  Kind of still is though he doesn’t work much with ColdFusion anymore.  But his face and name were instantly recognizable, and admittedly I always found myself a little tongue tied when I would try to introduce myself to him.

Raymond was one of the keynoters at Open Source 101.  He gave a great talk on how to identify the best open source projects for you to jump into. And his slides were filled with his signature use of cat pictures.

What was surreal though is that very few people at that conference knew him.  Now to be fair there were likely a number of Open Source rock stars there whom I didn’t know from Adam.  But it was different to not see a  huge pack of star struck developers vying for Ray’s  attention. Well, naturally I swooped in and took advantage of the opportunity and spent some time talking with him. He is a very cool and very humble guy. He even graciously agreed to an interview about topics that appeal to him.  That interview is coming up here in just a bit so hang on.

But the point I am trying to make and one that I better appreciate after attending Open Source 101 is the sheer enormity of the programming verse. There were so many different things there at that conference and yet it was still mostly focused on the web app side of things, which is in and of itself a small subset of the  much larger programming universe.  It’s a good thing to keep in mind when you have gotten burned out at your current job or miniscule subset of programming.  Even when your passion for it grows cold, which truthfully is the point I am at currently, there are so many areas to explore that could easily renew and reinvigorate what drives you!  So keep searching! Keep going! Keep growing!

Now Ray’s presentation clearly had an impact as I heard his name referenced in each and every one of the breakout sessions I attended, often by that session’s presenter!  I guess when you got it…you got it. So stick around, you are not going to want to miss my interview with him coming up right after this!

FAUXMERCIAL: Kitty Point

(Dark ominous music)

Announcer (in serious tone):

Mice. They may be cute in the cartoon realm, but in the real world they are disgusting rodents that can spread dangerous diseases like: Salmonella, Hantavirus, leptospirosis, rat-bite fever and even the plague!

And yet billions of people across the world come into contact with these dangerous entities each and every day while performing their work duties or surfing the net. In fact, odds are you have your hand on one of these disease carrying monsters as I speak!  It’s time to rid your home, your office, and your life of these repulsive rodents!

(Music changes to upbeat infomercial music)

Announcer (in upbeat tone):
Introducing Kitty Point, the fun, furry, feline optical pointer device from Peripheral Pets Incorporated. Kitty point makes it easy and relaxing to direct that pointer around your screen.  Just plug its USB compatible tail into your computer and its patented purr and play technology does the rest.  Scratch Kitty points left ear to move left and right ear to move right. Scratch the top of its head to move up and under its chin to move down. You can even scroll down by stroking Kitty point from head to toe (WARNING: Scrolling up can cause bodily harm). Kitty point comes in three softness styles including:   long hair, short, and the smooth and sleek Sphynx. A wireless Manx version is also available. Sorry dog lovers, pointing devices are strictly a game of cat and mouse.

Kitty Point is great for desktops but much prefers laptops! We guarantee you will simply adore Kitty Point. So get rid of the rodent, get your Kitty Point today and soon you will see just what we meme.

(Fauxmercial ends)

Script:
Welcome back to the “Wake up! With Script Van Winkle” podcast.  Let’s get right to my interview with Raymond Camden. Please note though that  this interview was recorded before I made the decision to lose my phony accent, so just bear with me on that. Besides, what Raymond has to say is far more interesting!  So here he his, Raymond Camden.

(Interview begins)

Script:
All right, so here I am walking around the Open Source 101 Conference, and who do I run into, but Ray Camden. Now, if you’re from the ColdFusion community like I am, he was a literal god. I mean, I remember seeing Ray back at the Allaire Conference, in DC in 2000. Confidentially, he looked a lot younger then, but then so did all of us.
Ray has kind of moved on from ColdFusion. He’s doing other things. But just to have him here, and to talk with him, I just wanted to get that out to you, and find out some of the exciting things he’s working on now. Welcome Raymond.

Raymond:
Hey, thank you for having me.

Script:
So again, I’ve talked about you had a background in ColdFusion and all that. What do you actually do currently?

Raymond:
I’m an evangelist for IBM. When I first joined them, I was working with a mobile enterprise server type thing that was really hard to sell because it was big and highfalutin. I was allowed to keep talking about mobile stuff, and I do a lot with Apache Cordova, which is a open source framework for using the web to build native applications. IBM was in favor of me doing that. Since I joined IBM, I switched to another team that is focused on Node.js, and APIs, with a product called LoopBack, which is an open source framework for building APIs and Node.js. I feel like I’ve said Node.js a lot.

Script:
That’s all right. I actually was going to hit you up when I back at NCDevCon, but I did sit in on your LoopBack presentation there, and Node is kind of an area that I’m hoping to really push into, as my listeners know.
But moving on from that though, one of the things that I asked you today that you wanted to talk about was this new idea of a serverless application. Let’s just pretend that some of our listeners, and maybe one of our hosts, doesn’t know what you mean by serverless. How would you describe it?

Raymond:
Well, sure, let me go a bit high level, and kind of talk about like my history of building web apps. I’ve been doing this since ’95 or so, so for a very long time. For most of that time, what I did was I got an app server and it was ColdFusion, but you can imagine PHP or .NET. I had this large application server, and I would talk to a database. I would generate HTML files. I had a big honking server to build my web apps. That worked fine for a very long time.
What has happened in the last five or six years is that the browsers are able to do a lot more. What we need to do on a server has gotten smaller, and smaller, and smaller. There’s two areas that I think are really exciting that relate to that. The first is static site generators. This is essentially the ability to have a dynamic server locally on your laptop, but it spits out to plain HTML files. I love that because it means in production, I don’t have Apache, ColdFusion, MySQL. I have files period. That means I worry about absolutely nothing. Not having to worry is a great thing.
To be clear, I’m still doing work. It’s not reducing the work. It’s basically saying, you know, my complexity now exist on my laptop, which I’m fine with, versus a server that may crash at three o’clock in the morning. That’s kind of like part one.

Script:
Oh, so basically, this would be kind of roughly comparable to a, saying a real-time application versus compiling it.

Raymond:
Yeah, so instead of having a live server that’s running ColdFusion or PHP, or even Node.js for example, it’s literally a flat file because I’ve taken the dynamic aspects that are potentially not changing very much. For example, I’m using ColdFusion to get a list of the Board of Directors. That’s a table that changes once a year maybe. There’s no reason to “SELECT * FROM EMPLOYEES“ to get that. Even if I cache it, there’s just no reason to do that live in production. I could take the static results from that because it’s a virtually static, and then not have to worry about running MySQL or SQL Server in production.
To me, that’s extremely exciting. I look back at the sites I’ve built in ColdFusion, and most, not all, but a lot of them could be static. Same with Node.js as well, you know. I went through a period of changing all my CF sites to Node.js. Now recently, I’m taking some of my Node.js stuff and turning them into static sites as well.
I said there were two main things. Serverless is like the second aspect of it where I may use Node to do something, ring cowbell. That’s kind of a bad example. In order to do that, I had to set up a web server, which was very easy with Express. I was still setting up a web server, and I was saying, “Start this application. Listen on port 80. Listen for a request for ‘/getcowbell’, do whatever it was, talk to Mongo, whatever crap I’m doing in the backend. Take the result, JSON, and spit it out.”
Serverless takes this idea … You know what? Let me handle all that particular routing for you. Let me handle the web request and all that. You literally just write the function. I think a better name for serverless is “function as a service”, where I can take that small function and deploy just that. I still have a server out there, but I’m not worried about actually running that server.
If my thing was addition, so take X and take Y, and return what they are together, I’m literally writing just X plus Y. I’m not writing all the routing and stuff to handle responding to that request. Hopefully, that makes a bit of sense.

Script:
Yeah, it kind of does. Where I’m getting a little confused here, you’re taking that, and you’re pushing it out to what type of service is going to run that?

Raymond:
Right, so there’s definitely a server involved with that. Amazon has their product offering Lambda. They have a server running, and you upload your action to them. They have a command line, I believe. So does IBM Solution, OpenWhisk , which is open source actually. It’s not just IBM Solution. I write my function in JavaScript, and they support Python, and Java, and maybe Go, I think. They support a couple of languages.
Essentially, I write my simple function. Take an addition. I write return X plus Y. It’s just a JavaScript file. I use a CLI to push it online. IBM’s Bluemix service hosts that file. They handle all of the routing. I don’t worry about setting up the server, or anything like that. I have my magical addition function, which by the way, don’t use addition for serverless. I have that and I’m not worried about provisioning, even like a virtual server, which is pretty darn easy. I’m not even worried about that. I literally worried about my one and two lines of business logic, and that’s it.

Script:
Alright, so let’s say you pushed that service up there. Now you have an application you want to use that service. Are you making an AJAX call of that?

Raymond:
Everyone does this a bit differently. I’m only familiar with IBM’s OpenWhisk version of that. The way they do, is they have a couple different ways that you can execute what they call a action. One of them is by providing a REST API. I could say for my addition, I want it available via GET, and not POST, or POST and not GET, whatever makes sense. I could define a URL for that, and I’m done. That’s it.

Script:
Now this is interesting because I … Back at the NCDevCon, they were talking about microservices and I kind of got all into that. Now you really got me interested in this. I don’t even have to worry about laying out the service, and getting that all. I just write a function, put it up there, and then I just access from whatever I need.

Raymond:
Right. The scenario to like push out a web app nowadays is a heck of a lot easier than it used to be in the old days. Especially with Node.js, right? I can write my Node.js application. I can use Express to handle all that web stuff. It’s all very, very easy. I could have, like say, four services. I define four routes. The particular URL params. Do that. I can deploy that to Bluemix or any of the variety of services that let you push a Node.js app, and be up and running in five minutes.
Serverless actually makes that even simpler than that. I don’t have to worry about setting up a Node.js server because OpenWhisk will do that for me behind the scenes. I don’t have to worry about the routing because it can do the routing for me. Essentially, it reduces the complexity around my microservices, and lets me just do the microservice, as nothing more.

Script:
Now at the risk of getting jumped and beat up here at an open source conference, let’s say you wanted to monetize that. Is there any applications that you can use to monetize that?

Raymond:
I’ve not looked into this. Technically, when I build, again, my simple addition service, and I create a REST based API for that … Again, it’s all pretty simple … I can require a username/password, and I can do validation. I could do billing based on how many times you call my particular service. There’s probably nicer, more enterprise ways of doing them. IBM may be working on that. Because I don’t deal with money ever, I don’t worry about that. My main answer is I don’t know. It’s definitely possible. Just how nice that is, is something I’m not very familiar with.

Script:
Alright, so thinking ahead to the bright future that might be involved here. It’s got to obviously vary by application, but if you looking ahead, what rough percentage of applications codebase do you think might ultimately benefit from being serverless?

Raymond:
That’s a great question. Because I’m doing the same calculations for static sites as well when I present static sites, and when I present serverless. I’ve had to be careful to make sure people know that this is not a 100% solution. It’s not going to kill Node.js as a server, or ColdFusion or PHP. Determining when it makes sense for you is like step one.
In terms of percentage, I’m just going to throw out 50% because I really don’t have any ideas. It depends on what you’re building, how complex it is, and just what your services is. If you’re building like a giant bank site that has a lot of content, and it has user sign-ins and all that, then you’ll definitely want a traditional app server. You may be using some microservices behind the scenes, but you’ll want something on the front end. You’ll want a CMS and all that.
If your service is just the weather, then you could possibly get by with something a lot smaller and a lot simpler.

Script:
Do you have any tutorials out there yet? Are you working on some projects you going to kind of put out on your blog?

Raymond:
Since late December, I’ve been blogging on serverless. Essentially what happened as things slowed down, and I got bored, so I finally looked at something that IBM had been talking about for a little while. I’ve written maybe 10 posts so far, so if you go to my blog, on the right side there’s a category list. There should be one for OpenWhisk. I have a tag for serverless or vice versa. You can quickly see the stuff I’ve done.
I’ve done basic how-to guides plus some examples. For an example, I built an application, this is totally not enterprise. What it does is it looks on your phone, and it finds all the contacts who don’t have pictures yet, where you haven’t assigned a nice picture to them. For those contacts, it calls a serverless function I wrote in OpenWhisk that returns a random Marvel superhero, and their picture, and name as well. So the service returns that, and then the app, which is running Apache Cordova, using Ionic, it updates the contact. Joe Blow becomes Miss Marvel, for example, and you’ll see that picture when Joe Blow calls you.

Script:
That’s a marvelous use of a technology there. Before I let you go, because people are going kill me if I don’t ask you about it. What is with all the cats?

Raymond:
I like cats. It’s simple. You know, since I’ve joined IBM, I keep waiting for someone to complain about the way I do presentations. No one has yet. Before I joined IBM, I really had this impression that they were old and stodgy. While they are old, they definitely are not stodgy at all, which is pretty cool. I work with some great people.

Script:
That’s awesome. Confidentially, between you and me, I’m a cat guy too.

Raymond:
Yeah …

Script:
If somebody wanted to find your blog or more information, Ray, how could they go about it?

Raymond:
Just go to raymondcamden.com.

Script:
Hey, that’s nice and simple. Well, Ray, I want to thank you so much for taking the time. Appreciate it, and I look forward to running into you at future conferences.

Raymond:
Thank you for having me again.

(Interview ends)

Script:
So that wraps up Episode 4 of the “Wake Up! With Script Van Winkle” podcast. If you’ve got questions or topics you would like me to cover, drop me a line at  script@scriptvanwinkle.com or find me on Twitter @ScriptVanWinkle.  You can subscribe to the podcast in iTunes, Google Play,  or on Stitcher. You can comment on this episode, see blog posts and find more info at scriptvanwinkle.com.

Thanks for listening and I’ll talk to you next time.