Episode 5: CF Roadshow and Rakshith Naresh from Adobe

Description:

On this episode of the podcast Script talks with Rakshith Naresh, the Senior Product Manager for ColdFusion  at Adobe.  They discuss many of the items featured in Adobe’s recent “ColdFusion Roadshow”. This includes information about some of the highlighted features of the ColdFusion 2016 (the current version), as well as some of the anticipated features of its next version, codenamed “Aether”.

But Script kicks off the podcast and his conversation with Rakshith with a discussion about ColdFusion’s reputation of being a “dead language”.

You can find out more about ColdFusion at  http://www.adobe.com/products/coldfusion-family.html or find out more about it on Twitter @coldfusion.

You can follow Rakshith on Twitter @rakshithn

Adobe is putting on events similar to the “ColdFusion Roadshow” on the west coast from April 10-17. For more information go to  http://blogs.coldfusion.com/post.cfm/adobe-coldfusion-events-april-10-17

Subscribe:

google-play-badge

 

Transcript:

Hello and welcome to Episode 5 of the “Wake Up! With Script Van Winkle” podcast. My name is Chris Laning, a.k.a. Script Van Winkle. But my friends call me… collect. Come to think of it there Junior Developer, you might need to look that one up.

Two months back, Adobe put on their ColdFusion Roadshow. It was an informational meeting taken to several cities on the East Coast. I got to attend their session in Durham, North Carolina. I got lots of information about the current status of ColdFusion, and a look at some of the features  that might be in future releases.


As someone who is been developing in ColdFusion for over 20 years, obviously I was interested. Especially because I am working with servers that are  several versions behind the current one. So I wanted the opportunity to at least get a taste of what I’ve been missing.

I have run into many people who believe  that ColdFusion is a dying language. While I resisted that opinion for the longest time, I have begun to believe it as well. I have seen a lot of the giants in the CF field move on to other languages and technologies. However, as you will hear in the interview, Adobe has numbers regarding ColdFusion usage and adoption which just don’ t jive with that  line of thinking.

Which leads one to wonder where the truth lies.  Is it really dying, or could it be that a lot of people who have been doing ColdFusion for all these years have moved on to other things not so much because the language is falling behind, but rather because they were tired of doing the same old things and wanted new challenges. I have to admit, I’ve somewhat lost my enthusiasm for programming in CF. But in my case, that may be because I’m still stuck so many versions behind. But what if it is the case that people’s tastes just change from time to time? Maybe there are people coming to ColdFusion from other technologies that they have been doing for a long time.

 

It’s also hard to say what the job market is like in the ColdFusion field and I have heard mixed opinions. Some recruiters have told me that while there are not a lot of jobs in ColdFusion  there are considerably less experienced ColdFusion developers to do those jobs. In short, they have assured  me that if I ever need a new job, I should not have a problem finding one. Unless of course my potential employer has listened to the podcast.

 

Now at the ColdFusion Roadshow, Adobe mentioned how it has taken several steps to help make it easier for other developers and particularly students to learn about CF. At its heart, it is not a difficult language to pick up. Especially if you’re coming from the strictly front-end HTML side.

 

ColdFusion is really easy to understand for beginners. But, they have also made many advancements to it over the years to bring it more in line with other programming languages. That, ultimately, makes it easier for people to jump from those languages to ColdFusion.

The long and short of it is this. Perception may not be reality. I don’t know whether ColdFusion is a dying language or significantly growing. But I will say this. It is certainly possible that it is just in a phase of transition bringing on different types of clients and different developers. I guess that remains to be seen.  I will let you decide that for yourself.

I also had the chance to sit down with Rakshith Naresh who is the Senior Product Manager for ColdFusion.  I am grateful to Adobe for making Rakshith available for an interview that day. I made it clear to them that one of the questions I was going to ask was about whether it was a dying language. So this is not “gotcha”  journalism. Rakshith, Elishia Dvorak, and the rest of the staff from Adobe who were there that day were friendly, personable, and willing to take on any and all questions. That is why I am glad I get to bring this interview to you.

 

Now on the last episode I explained in great detail why I was dropping the phony character accent I used on Episodes 2 and 3.  This interview was before before I dropped it. So enjoy my bad accent one more time.

 

Without further ado, here’s Rakshith Naresh from Adobe.

 

————————————-

INTERVIEW BEGINS

————————————-

 

Script :

Alright, so I came to this ColdFusion Roadshow that they had going on here in Durham, North Carolina and it was kind of giving us a map of, well first they were giving us a map of the future, but they were also talking about what’s out in ColdFusion 2016.

 

Very informative and very enlightening. I decided to grab Rakshith Naresh, that’s the Senior Product Manager with Adobe. He gave some of the presentations and I thought I’d get him to talk to us a little bit about what’s going on.

 

Welcome to the show, Rakshith.

 

Rakshith:

Thanks, thanks a lot. It’s great to be a part of the show.

 

Script :

So I got to start with the 2,000 pound elephant in the room here. You know I’ve been a ColdFusion developer for all these years but in the last few years I keep hearing over and over ColdFusion is dying. I know you’ve heard that, so what do you say to people that really think that ColdFusion is becoming a dying language?

 

Rakshith:

It’s definitely not dead. I had this on my slide deck as well. It’s clearly the best undead language ever. We are working on the next version of the product already. I spoke to you about the roadmap as well.

 

Just last year, and we run a business at Adobe clearly, so ColdFusion is about business for Adobe. The business last year was really good. This was one of the best years that we’ve had over the last eight years or so. ColdFusion is really doing well for Adobe, so what it means is that Adobe is more and more committed to ColdFusion as a platform.

 

That’s the reason we have a 10-year roadmap as well, so we have support commitments to 2027. With every version of the product you get five years of core support and two years of extended support. Our existing support commitments for ColdFusion Aether, which is the code name for the next major version of the product, and the version beyond that goes up to 2027. That’s the longterm commitment that Adobe has for the product as a platform.

 

Some of the things that we are doing as a part of the next version really excites me. We are focused on the things that really matter to a ColdFusion developer. We will improve on performance, improve the security aspects of ColdFusion, make the platform more secure by default, improve the CFML language as well. We have some exciting stuff going on in the next version. Somebody who thinks that the language is dying, it’s just a myth that’s floating around. It’s definitely not dead and we are actively working on it and we’re working on the next version of the product, code name Aether.

 

Script :

I think one of the impressions that people get, and frankly I got that impression myself when you’re out there seeing what’s out on the market. It seems like ColdFusion seems to be mostly focused in like federal government and big bank institutions. Is there any push for ColdFusion in the more nimble, start-up type arena?

 

Rakshith:

Absolutely, so that’s the reason we have two different versions of the product, which is ColdFusion Enterprise focused more towards the larger companies, and ColdFusion Standard geared more towards start-ups and even a small size organization. That’s the reason we still have standard alive today. If we were not focusing on the small companies, the start-ups, we would not even have ColdFusion Standard anymore, we would just focus on ColdFusion Enterprise.

 

Standard gears towards somebody who’s starting afresh and trying to bring new stuff using ColdFusion. One of the talks that we have, which is still an initiative that we have in mind is, can we do something with the start-ups? For instance if there’s a new start-up coming up, can we provide them with licensing support for the first few years to support the start-up? Then once the organization matures, obviously they will become ColdFusion customers as well.

 

That’s one of the thoughts, we still are working the details of it, but clearly even though existing customers set-up today, we do have all kinds of companies. We do have federal government, we do have really large customer organizations, and we do have really small organizations, start-ups as well.

 

Just so that you know, even today we added on 2,000 new customers every year. It’s not just an existing customer story, the platform is growing. It may not be growing to the extent of some of the competing technologies. We have to accept that as a fact it’s not a super growing product, but at the same time it’s not a product that has stagnated. We continue to grow, we continue to add 2,000 new customers year over year.

 

Script :

One of the questions that we heard here today, somebody wanted to know what you’re doing to go out there and recruit the newer, upcoming junior developers. That’s a good thought, I mean me, I’m an old, grizzled, senior developer, whatever. If you don’t get the fresh blood in there, it’s going to be some problems. What are you doing in that realm to try to get these guys and girls onboard?

 

Rakshith:

Yes, absolutely. That’s a great question. We have quite a few initiatives, we clearly see that as an issue. Whenever we talk to our customers and even developers out there, we hear that hiring new developers, that is the number one challenge out there. It’s not so much about the product; the product runs great. Where can we find those new developers? That’s basically the problem that our customers have today.

 

We have quite a few initiatives to fix that. It will take some time to eventually see a noticeable difference, but we have made that move already. The first one is we do have a free education curriculum available. It’s a semester long course on web application development; it focuses on web application development in general. We have client-side, HTML, CSS, JavaScript. It introduces the client-side bits to you and then it also introduces server-side via ColdFusion. This is a free course available and we have quite a few community colleges who are adopting this web application development course.

 

One of the issues that we saw was the curriculum at the community college, they are pretty much outdated. We wanted to come up with this new focused web application development course for the community colleges, or even for any university in general, and provide them with a semester-long course, provide them with instruction videos as well, curriculum material, even projects so everything is right there. They just need to hand it over to a certain instructor to teach that curriculum in the college.

 

What we’ve also been able to do is create a model where we have tied in our customers with a few community colleges where they typically go hire new developers. It’s worked out quite well for us in a few areas where we have the schools in place at a community college. Developers love to be a part of the course, more so because there’s a customer who’s looking to hire interns from the community college. They take part in the web application development course, and once they’re out of it they get an internship opportunity with one of our customer organizations. It’s kind of like a win-win, both for the new developer as well as our customers who are looking for fresh blood in the ColdFusion community. That is one part of it.

 

The other issue that I generally see is a lack of introductory training materials out there for ColdFusion. There are a few, like Learn CFML in a Week and a few other training materials, but we are focused on bringing in some new curriculum courses with new training courses as well for a new developer. We have this Adobe platform called Adobe KnowHow. We do have … I don’t know how much it is, I think it’s 30 hours of instructional video for a new developer on Adobe KnowHow. That’s a great resource for somebody who’s trying to get in to ColdFusion and learn. Videos are the in-thing today to learn any kind of technology. You don’t go through a set of documentation to learn, so we are doing that.

 

The third really interesting project that is my favorite is the CF Fiddle. This is an online tool that works in your browser. What it does is, it shows you a code snippet that you can go tweak and you can run the code snippet from within the portal itself on the browser and see the output right there. The whole idea is instead of showing ColdFusion developers static content or new developers some static content in the documentation, we will have a link to CF Fiddle that will take you to an online portal where you can run the code snippet and see it working.

 

You can tweak that, share it with others, and also if you have any kind of questions, if you want to ask a question to the community on Stack Overflow or Adobe forums, you can now link a CF Fiddle code snippet and link it in the forum, and somebody who’s an expert in the community can take a look at it, see the output right there, see the issue, fix it for you, and then pass it back to you as an input. We have all these initiatives in place. It’s not going to change things drastically in just a year or so, but we believe that it will change the game in the next few years.

 

Script :

That’s really cool. We’re going to take a quick break and we’ll be right back with Rakshith Naresh, Senior Product Manager with Adobe.

 

————————————-

FAUXMERCIAL: “Fusion Kingdom”

————————————-

 

Coming soon to the Adobe Studios Resort in Orlando, a brand new theme park experience for the entire coding family, Adobe’s Fusion Kingdom.

 

Your journey begins on a scenic ferry boat ride across the majestic CFCs lagoon. Next you’ll take a magica stroll through the enchanted Allaire forest.

 

Once Inside the Fusion Kingdom your true adventure begins. Enjoy Popular  roller coasters like the Oop de loop, Cache mountain and the futuristic suppress white space mountain.

 

And be sure not to miss the dazzling splendor of Thunder mountain, where you will bolt like Zeus down the mystic Merrimack river through a stormy blizzard, dodging scorpions while being chased by a centaur. Who knows what else may develop before your ride is over?

 

For more family-friendly  fun experience the many different settings in the Adventures of Neo and friends  or enjoy classic attractions like the Carousel of Progress Bars.

 

If you are hungry, you can dine in an award-winning restaurant like the spaghetti code Café, or trythe retro chic Macaroni Meatia restaurant.

 

As night falls the Fusion Kingdom comes alive with the  glowing pagentry of the Spectra Magic parade followed by the Adobe’s world famous Fireworks.  As you exit the park, don’t forget to preserve those memories by picking up a hat, tshirt or put your name on your very own Fusion Kingdom custom tag.

 

Great times and precious memories at Adobes Fusion Kingdom. Where the action is always unscripted.  Unless you want it to be.

 

Construction of Fusion Kingdom is slated to begin soon, upon completion  of Adobes Photoshop pier, Acrobat Adventure, llustrator Island, Flash Fantasy Island, Preimer Park, Dreamweaver Farms, After Effects Experience, Audition Alley, Muse Magic, In Design Dominion, and Creative Cloud Land.

 

————————————-

INTERVIEW RESUMES

————————————-

 

Script :

Welcome back to the Script Van Winkle podcast. I’m Script Van Winkle and I’m here with Rakshith Naresh, the Senior Product Manager at Adobe. The main purpose of this CF Roadshow was to kind of tell us what’s going on in 2016, and then take a look at the future. First off, what do you think are some of the highlights of 2016, the things that you’re most excited about?

 

Rakshith:

I’m really excited about the performance improvements that we’ve done. Your existing applications will run up to 30% faster. Even without having to make any code changes, you can get 30% increased throughput.

 

What it means for you, for a developer is that your existing applications, even without you having to change the code, tweak the application, you will be able to leverage those runtime improvements, perhaps to deliver on one of your goals or one of the KPIs that you may have. You may have a KPI to reduce the end-user response time by so many percent, but the new platform itself will give you the boost so that you can accomplish your goals. That is one thing that I’m really excited about.

 

The second one is security. We are focused on security so you have access to a team within Adobe called PSIRT. They’re a group of security experts who work within Adobe and they give us recommendations and how to go about fixing a security threat. Even if it’s a threat in the wild out there, we get to hear about it from the PSIRT team and they interact with the product team and help us release those security fixes on time.

 

We do have frequent security fixes as well. In 2016 specifically, we came up with this new security code analyzer. Let’s say you may have some legacy applications that you’re just maintaining. Somebody else wrote it, let’s say 10 years ago, and you have been assigned to maintain it. You don’t really know what kind of security issues are present in that particular legacy application. When you run the static code analyzer that we have, it points out exact line numbers, which have the vulnerabilities and it will also recommend how to go about fixing that. That is something that I’m really excited about.

 

The third one is API Management. I just love what we have built. Even the customers who we work with, they just love the solution. Some of our customers have actually moved out off some of the leaders in the API Management space to adopt our solution. That helps you take your APIs to market with ease. You just have to worry about designing your API, coding the API. Everything else about securing, managing, engaging developers, analytics, everything is baked in, in the product.

 

This is freely available as a part of ColdFusion and it cannot just manage CFML-based APIs, it works with any kind of APIs. One of the things that we saw was 74% of our customers have multiple technologies in their organization. If the API manager can actually track those individual technology-based APIs as well, be it a .Net API or a PHP API, the relevance of the importance of ColdFusion all of a sudden is so much more within the organization, so that’s one of the reasons why API Management excites me. 2016 in general with performance security language improvements and API Management are like the top picks for me.

 

Script :

We got a lot of listeners here that maybe aren’t so up-to-date on things and may not understand what you mean by the API Manager. Are we talking like services, micro-services, what are we talking here?

 

Rakshith:

That’s actually a great question. The way API Management platform works is, it’s actually a gateway that sits in-between or before your ColdFusion server. Your back-end APIs, be it REST APIs or SOAP APIs, will be returned in CFML.

 

Now there’s a gateway component that you install either on the same machine or a different machine, so this kind of routes all your API calls to the back-end. While it’s routing the calls to the back-end, it provides this additional layer of security. It provides you access control so that nobody can hit the back-end API without having to bypass the API Management layer. It has to pass through the authorization mechanism that we have, and then access the back-end.

 

Similarly SLAs, so service level agreements. You can enforce them at the gateway. Similarly analytics, since the traffic is routed through the gateway as a separate constant, it’s a stand-alone component, it can track analytics as well. All this that you were supposed to take care of as a ColdFusion developer when you’re building an API, is now offloaded to this new component that sits in front of your ColdFusion server. That’s the whole idea about the API Management layer.

 

Script :

Okay, that makes it sound a lot simpler, because I know there is this big push toward moving toward services and things like that. I have mentioned in other podcasts that this whole of micro-services, I kind of like it. I want these little short things to do what you need to do. Sounds like it’s a good direction.

 

Rakshith:

Right.

 

Script :

One of the things that caught my eye, being an old-school developer, is some of the language changes. In particular, could you explain the changes in the structure?

 

Rakshith:

In 2016, we introduced this concept of ordered structure, so you can now retain the insertion order. So just like an array. An array maintains the insertion order. You can get elements out of an array based on how you insert on index one, two, and three. What if you want something like this on a struct to get data back out of the struct in the insertion order? That is what this ordered collection gives you.

 

We also have this new capability of ordered structs. What it does is, whenever you insert something on the struct, you can order the struct based on the key values that you insert. You can customize it by your own function that it can pass, or it can say that you want an ascending order struct or a descending order struct, and you would just order the keys based on what you select.

 

Script :

This keeps us from having to take stuff that was in the struct, moving it into an array to do the ordering, and then dumping it back out?

 

Rakshith:

Yes. Internally it works slightly different but yeah, for a developer it feels as though the struct, when you do an array and got back all those elements in the insertion order, absolutely.

 

Script :

Awesome. Before we go, real quick. You mentioned some of the things that are coming up in the next version called “Aether”.

 

Rakshith:

Yes.

 

Script :

Just a real quick overview of some of the hot things that you think are coming out with that.

 

Rakshith:

I’m excited about Aether as well. Again, through multiple service, through multiple customer interviews, what I find is our customers and developers are looking for performance improvements. We did performance improvements to the runtime in 2016 but we plan to take a slightly different approach in the next version.

 

We are planning to provide tooling that will help you extract the best part of your existing infrastructure. We’re planning to come up with an auto connector tuner that can optimize your connector to the best. We also will revamp the server monitors so you can figure out any kind of bottlenecks in your application, JVM settings not tweaked in an appropriate manner.

 

You’ll get notifications on all of this using the revamped server monitor, which will have a new dashboard that will kind of give you a sense of how well is your application performing in just one snapshot. That is one thing. We are also planning to introduce a code profiler for performance. Performance improvements will obviously be there. We’re also planning to support a distributed cache. Those are some of the things in performance.

 

On security, we may have an integration with a web application firewall just to make your application so much more secure. This also functions like a gateway, even before your ColdFusion applications come in the picture, it just scans your HTTP request pattern and prevents malicious request patterns from hitting your back-end. That is also something that I’m excited about.

 

Quite a few language changes as well. We are planning to improve the object-oriented support, perhaps look at introducing CFScript 2.0, introduce null support. There are a lot of potential directions but we may not be able to accomplish all of it as a part of Aether because we only have limited resources available.

 

The directions are pretty interesting and the nice thing is in all these Roadshows, I get a sense that everybody likes the directions that we are taking. That’s the best part about the directions that we have. I had this $100 test for people who are here and it seems to echo what we are planning to do. Clearly performance, everybody likes performance. The performance improvements that we’re doing, the security, the language, so exciting times for the next version as well.

 

Script :

We appreciate it. We’ve been speaking with Rakshith Naresh. He’s the Senior Product Manager at Adobe. I thank you for your time and real quick, the Aether is due out, when is that 2018?

 

Rakshith:

Yes. We’ve been having a two year cycle pretty much. Potentially I can’t comment on the exact date of-

 

Script :

Come on, I want a committed day right now, down to the day. Let’s go, break it here!

 

Rakshith:

Okay, it’s going to be in 2018.

 

Script :

Awesome. Again, we’re speaking with Rakshith Naresh, Senior Product Manager at Adobe. Appreciate your time and thank you for being with us.

 

Rakshith:

Thanks a lot, it was great being a part of the show.

 

————————————-

INTERVIEW ENDS

————————————-

That’s all for my interview with Rakshith Naresh.  I hope you found it as informational as I did and  that it left you with some things to think about it.

 

That’s all for Episode 5 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.


 

Episode 4: Getting Real, Open Source, and Raymond Camden

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.

 

Episode 3: Fishies, Legos and Play-Doh

Description:

On this episode of the podcast Script discusses where he has been for the last few months, a personal project he is undertaking to help learn new technologies, and answers a question posed to him by listener Brandon Kuenzi in the comments on Episode 2 about the changes he has seen in the last 20 years.

Subscribe:

google-play-badge

Transcript:

Welcome to Episode Three of the Script Van Winkle podcast! My name is Script Van Winkle, but my friends call me (singing) “maybe”.

Now on the last episode of the podcast I was telling you all about everything I learned at a great conference in North Carolina and what an awesome and growing tech community there is there.

In the first episode I was telling you how I was trying to get a job with a company in a nearby city but how in the end I decided not to apply at that company. That, it turned out was a good thing. Just a few weeks later, me and the Mrs. pulled up our roots in the Mid-Atlantic region, and set them in the soft, fertile, though sometimes sandy, soil of North Carolina. Nice how I tied those two things together.

Now, all of this is just really a lame excuse as to why I haven’t put out a podcast in over two months. But hey, it takes a long time to unpack a microphone. I’m just saying.

On the plus side, you can consider this episode my holiday gift to you. So Merry Christmas, Happy Hanukkah, or whatever other meaningful holiday you celebrate this time year.

So in this “present” tation (see what I did there) I am hoping to accomplish two things. Which would be two more than I’ve accomplished so far this week. First, I’ll tell you about a personal project that I’m going to be using as a vehicle for learning new technologies. Second, I’m going to try to fulfill the request of one of our listeners. After all, I’m rarely asked for my opinion on things.

When you are learning new technologies, especially when going through tutorials, you inevitably encounter a variety of sample programs you’re supposed to try out. These range from the ubiquitous “Hello World” programs to more complex ones showing you what the technology can do.

Now I HATE sample programs! Ok, I’m not talking about the examples that you find when you’re reading through a tutorial. I love those examples! Especially, because when you’re looking up how to do something, if it doesn’t have an example it can be really frustrating!

What I’m talking about is when they give you exercises to do to create sample programs for you to try out what you learned. Now don’t get me wrong, the sample programs probably are the best way to reinforce what the tutorial taught. After all, they give you a controlled environment where you don’t really have to consider other factors that may ultimately play into your application. It’s just a simple sample example. Nice alliteration if I do say so myself.

It’s those programs that I can’t stand doing. And I’ll tell you why. If I’m going to be investing my time writing a program it needs to have a real world application. Or, more than likely, something I HOPE will be a real world application that somehow never quite makes it big.

My hard drive is filled with “real world applications” that I never seemed to get launched before the next big “real world application” came along. And if you saw the number of the domain names I have registered and keep registered today just because I don’t want to let them go….it’s insane. But I digress.

Now there are several web technologies I want to learn including microservices, which I mentioned on the last episode, Node.js, and AngularJS. Plus, I really want to push the limit of keeping that hard line between the frontend and backend. So I decided to find a personal project that could accommodate all of the above and give me an opportunity to play with each one of the technologies.

My son is a Boy Scout. In fact, this year he earned his Eagle rank! Hey, a proud papa can boast can’t he?

His scout troop is affiliated with a Catholic Church. One of the biggest fundraisers for the troop every year is a fish fry they host one Friday during the Lenten season. Last year I joined a parent committee that works on the fundraiser. One of my first contributions was to help with the promotion of the event by creating a new website specifically for it as well as creating a Twitter account to promote it via social media. This went together with another member’s creation of both an Instagram and a Facebook account.
Now I am a web developer not a web designer. So I went out and found a great HTML5 template to use for the website. Because it’s a simple informational site, I quickly hand coded a couple of static HTML pages. To them I added some really delicious looking photos of the dishes they would serve provided to me by a member of the committee who is also pretty awesome professional photographer.

I then used ColdFusion to build a form for which users could order tickets. Once this form was submitted, the information was stored in a local MySQL database. Then the user was handed off to PayPal to complete the financial side of the transaction. Once they successfully completed the stuff in PayPal, they were redirected back to our site. Paypal included a bunch of information in that request so that we could identify what the transaction was and then update our database table to show the customer had paid.

I also created an admin side of the site where the orders could be viewed and the information taken from there to add to the list of information from the tickets the scouts physically sold.

Now given that it was the first year for online sales and we didn’t really get a chance to promote it too much the number of orders wasn’t exactly overwhelming but it did contribute to one of the most successful fish fry’s they ever held. My job the day of the Fish Fry? Manually thawing a couple hundred pounds of frozen fish….a chore that was decidedly Haddock forming.

Now if you’re wondering why I’m talking about a project I did in the past but I’m supposed to be talking about a project I’m going to work on in the future to learn all this new technology, it’s because I’m going to use that project as the basis for this one. You see, the chairman of the committee was so impressed at what I did he had an idea. One of the biggest problems he has on the day of the event is figuring out just how many tickets they can sell to people who didn’t purchase tickets in advance. Up until now he has just tried to look at how many people seem to have come to the event, and guestimate what they likely have left.

But now his idea is to make a system that has all the ticket sales recorded, allows staff to check off people as they come in and in real time match that up with the inventory of the food we know we had to begin with, and give a relatively accurate count of how many pre-sales can still be sold.

So I decided that I’ll take on that challenge. And yes, my idea of a “real world app” is one that is going to be used by one person one day year. I know what you are thinking there junior developer but you can keep your opinions to yourself.

Besides, the jokes on you. Because you’re going along for the ride.

Now this time around we’re just going to focus on the initial planning steps. Dividing the application into logical parts and then kind of figuring out which technologies play what roles for each part.

Obviously the first logical part of the application already exists. The public facing website that we built last year. And while one could be easily tempted to go in there and rebuild it with newer technologies, we are going to leave that as is for now which means it’s going to be a combination of HTML, CSS, a little bit of vanilla JavaScript and some delicious pictures.

The second part of the site is the ticket order form. That’s is also using HTML, CSS, and JavaScript, but now adds on ColdFusion and interaction with a MySQL database. Once again we will let this one ride as it is for now.

The third major part is integration with the PayPal API. That’s working so we’re going to leave that one for now. And we will do the same for the admin side of things though we may build a few additional pieces to it to support adding inventory into the system.

Now things get interesting as we look at the newer functionality. A great thing to keep in mind with this new piece is where we are going to be using the application. All the previous pieces are used by users from various locations making it perfect for a web based architecture.But for this new stuff that is not the case. At the venue used for the fish fry the Wi-Fi is very spotty at best, and we pretty much know that this is going to be used by one person on one computer.

Right about now I can hear all you VBers or .Neters screaming “Hey! This is perfect for a Windows app!” I can also hear all you mobile developer screaming “Hey! iPhone or Android app!”.

Hey, I hear yah. But just remember here I’m a web developer looking to improve my web development techniques. So I want to stick with that technology. In this case, there is really only one logical choice, JavaScript baby!

I can hear a few of you out there going “Hey Script! You know that JavaScript is client-side? How are you planning on interacting with the database and get and set all that information you’re going to keep on the fishies and the shrimp and the other good stuff?”

To you I say, “Forget about it!” Because as you may or may not know Node.js is designed to do JavaScript on the server-side. You can use Node to do a lot of the same server-side functions like interact with the database. Now, Node has to reside on your server. Due to the limited network connectivity at the venue we are pretty much better off running this app local on a laptop anyway. We will have to install Node on that but again it’s one machine and we are controlling it.
This is also where that whole separation of front end and back end comes in the play. On the backend we’re gonna be doing things like pulling order records, updating the flag to say the how many meals been picked up and running calculations against the inventory to come up with a number of tickets we still can at the door.

So Node.js makes the most sense. We run a little node server on the laptop which could handle all the database interaction. We can even split these tasks into little microservices which I think would be fun to do. But what database are we going to use?

Now on a future episode I would like to go into a deep discussion of the differences between SQL and noSQL database. At least what little I know of. But for purposes of this discussion let me just give me a real quick synopsis. SQL databases are the kind most people generally think about.
You create structured tables, ones in which the records contain the same fields formatted the same way. You find your records by indexing and matching up records from one table to another all done through the structured query language, aka S Q L, aka SQL(sequel).
NoSQL on the other hand has a lot less structure. You create collections of objects and those objects can be any different type of data, mix-and-match, you name it. Generally you want to keep the same thing just so you can keep your sanity but it gives you more flexibility. One of the most commonly used ways to use NoSQL is to take data objects in your program and save that entire data structure to the database. You can use a lot less complicated statements to set and pull your data.

So let’s think about it. We’re gonna have a list of orders and are really going to just have to pull them by one key value… their ID right. And we are not going to be doing any sort of in depth searching on the orders. I mean it’s pretty cut and dry.

Also we are going to have a list of the foods we track. You know, the fishies and the shrimp. They’re going to be individual records we just need to pull up and update the count of the ones that we use. Also cut and dry. Not to mention we’re gonna put a copy of the database and run it locally on this computer. Nosql engines tend to be a little bit lighter than say MySQL and MSSQL.

The one downside to using NoSQL here is that on the website last year we collected the information in a MySQL database. To be able to move that data over to a local copy on our laptopwe are going to have to do one of two things. First, we can convert the website to using noSQL instead of SQL. While that shouldn’t take a ton of time, it violates our idea of not touching what was already working. The other option is to write some sort of function that crawls through the SQL tables, builds data structures from the results and stores those in the NoSQL database. That certainly wouldn’t violate the first principal about not touching the stuff is working. It would also be a rather interesting exercise in creating a microservice to do this.

However, I’m curious to get your opinion on it. So in the comments let me know your arguments for going with SQL or NoSQL for this application.

So to recap so far, we’re going to have a database sit locally on this machine whether it’s SQL or NoSQL It’ll have the most up-to-date information as of the date of the event. We’re going to put Node.js on this machine to handle backend functions and DB interaction, with those steps possibly divided up as little microservices just for kicks.

Now for the frontend. To control all the interactive screens the person checking people in at the fish fry would use, we could pretty much go straight HTML and JavaScript. While it would be fun to try out a little AngularJS here, it might be a little extra complication we don’t have time for. But if the opportunity presents itself we should think about taking advantage of it.

The committee chair also said he thought it be a really cool idea if the tickets they sold had barcodes or QR codes so they could be scanned as the people come up to the ticket desk. It would pull up their order and the person working the desk would check off the meals that are being picked up. It’s a cool idea and worth considering. I just have to decide on how complicated that is.

So that gives you an overview of the program that I’m planning on using to try to figure out new technologies. As of this recording it’s already the middle of December actually even later just a few days before Christmas. The Fish Fry is held in March. So I don’t have a whole lot of time to get this together. As I work on it though, I’m going to try to bring you in on it and let you know some of the things I discover along the way. And, of course, I welcome any input you have, just leave it in the comments on the website at ScriptVanWinkle.com.

Now coming up I’m going to fulfill the wish of one of our listeners who left me a comment on the website and fill you in on my opinion on a particular subject. That is coming up right after this.

(GitReal fauxmercial)

Welcome back to the Script Van Winkle podcast. Now listener Brandon Kuenzi’s comment on Episode 2 was very complementary. He mentioned how much he enjoyed the podcast and hopes that I continue it well into the future. As a long time podcaster I can tell you that kind of feedback means the world to me and I thank you so much for it. And yes junior developer I get that this is only the third episode of the podcast. But trust me I’ve done hundreds of episodes of other podcasts so I know whereof I speak.

Brandon also expressed an interest in getting my opinion on how the industry has changed over my 20 plus years in it. That is a request in which I would be happy to oblige.

Now being an old grizzled developer, well maybe not so old, but grizzled like a bear. I have seen so many changes it would really be hard to cover them all in one shot. So for now let me focus on one simple aspect of the industry. To me, I think one big change is the inversion of thinking on the development and programming of websites and applications.

You see, in those early days we didn’t have very much to work with. So you would start with the text that you wanted to show on the webpage. Then you would add some HTML tags around them to emphasize certain points of text and maybe, MAYBE add a few simple graphics to punch that up a bit.. You would save those into static HTML pages, usually one for each page of your website. When you had an element of the page that you wanted to make dynamic you would replace that hard coded text with either an active service page tag or a ColdFusion tag that would render that dynamic information. In fact, you would often put other ColdFusion or ASP code that computed the dynamic information right at that same spot. It was our version of just-in-time info.

Hey, in those early days we really didn’t have JavaScript or even JScript so those weren’t even a consideration.

So essentially, you were starting with your finished product. You know, the static content you want to get out there, and just dressing it up a bit either with style or a little bit of dynamic text.. And, doing whatever dynamic stuff you did when you needed it. It was pretty much a procedural way of doing things.

Now think about how we do it today. It’s more comparable to an object oriented environment. First we gather all the information we need from all the dynamic sources we need to get it from. This could be from databases or text files or even still some hardcoded HTML. But the point is we gather it and build the entire structure. Then using CSS, HTML templates and such, we llay out the format and combine it with the graphics and look and feel. Essentially we are starting with information first and styling second. Not to mention, where in the old days pretty much everything was in one big giant monolithic document, these days you try to make the files as small as possible and separate out and reuse assets and code as much as you can..

If you want a really bad analogy to describe the differences think of it this way. Twenty years ago a web page was like a big giant lump of Play-Doh. Everything we needed was pretty much in the Play-Doh and all we needed to do was kind of mold it, maybe take a piece from another lump of Play-Doh and mix it in, and maybe hang a couple of pictures on it.

Whereas today your building sites more like Legos. Lots of different specialized parts that are attached together through standard connectors to make the final product.

From Play-Doh to Legos, yeah I’d say that was a pretty big change. And don’t worry, I will resist the temptation to say I saw developers go from sculptors to blockheads. Hmmm, maybe I should look up the definition of the word “resist”.

And that’s all for this episode of the 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.

Episode 2: Meet, Eat, and Learn!

Description:

On this episode of the podcast Script discusses conferences in general and his recent trip to NCDevCon in particular.  He also has a great interview with Ben Nadel (@BenNadel)  who has a very popular blog on Coldfusion and Angular programming.

Links:

  • NCDevCon– An awesome development conference in North Carolina.
  • BenNadel.com – Ben Nadel’s blog with lots of great coding help as well as a jobs board and pictures of a virtual Who’s Who of the community.

Subscribe:

google-play-badge

Transcript:

Welcome to the second episode of the Wake Up with Script Van Winkle podcast!  My name is Script  Van Winkle, but my friends call me… only when they need something.

Now when you are trying to play catch up with the programming world, like I am, one really great way to do that is to attend one of the dozens if not hundreds of programming conferences put on each and every year. But how do you pick one? How do you afford to go? And just what the heck happens at one of these puppies?

By sheer coincidence, would you happen to believe, I just got back from an awesome conference last weekend in North Carolina.  So I might be persuaded to talk about some of what went on there.  And as a treat, I also caught up with Ben Nadel, who runs a pretty popular blog for those who program in ColdFusion or Node.js., so stick around for a sweet interview with him.

Ok.  So Webster’s defines a conference as “a formal meeting in which many people gather in order to talk about ideas or problems related to a particular topic (such as medicine or business) usually for several days.

Now I have no flipping clue why people insist on starting education discourses with a definition from Webster, nor why Emmanuel Lewis is considered such an expert in etymology. Yeah, that’s a real term there Junior Developer, look it up.

So last weekend I attended NCDevCon, an amazing developer conference in Raleigh, NC.  Now in its ninth year, this conference is held on the campus of NC State.  It was started and run by the Triangle Area ColdFusion User Group, but while there is certainly some ColdFusion specific content among its sessions, it covers a lot of other topics including Javascript, Nativescript, Mobile Development, CSS, database, testing, continuous integration….you get the picture. A wide swath of topics.

While conferences vary of course, most start off with a general session. This is where all the attendees gather in one big room, hear some housekeeping announcements and usually a keynote speech.  In the case of NCDevCon this is almost always a talk from their longtime sponsor Adobe.  Usually Adobe is giving a roadmap to the future of one of their products, usually ColdFusion.  This year though, Elisha Dvorak, Adobe’s ColdFusion evangelist, actually started off the talk by discussing microservices.  While not brand new, microservices is kind of the hot buzzword right now.  

Essentially, the microservice architecture is one in which you break up tasks in your application into smaller, logical, completely independent applications or services, which take input via an API (usually through REST protocols), and return data usually through JSON.  These services should be entirely stateless so that given the same input, they should return the same output.  And since they use network protocols in access, they should be completely platform independent, meaning each and every service could be written in an entirely different language and they should still all be able to work together.,Now, if that didn’t make any sense to you, don’t worry. I plan to cover microservices on an upcoming episode, because I do like the concept and am working on learning more about them.

Now Elishia’s talk did of course eventually divert to talking about current and future versions of ColdFusion. Personally, I am cool with that.  Even if you aren’t using CF or work at a company that is still stuck four versions behind, its still cool to see what they have elected to focus on in the future.

Now I did hear a couple of grumpy gusses complaining about the talk being too salesy.  But those same dudes didn’t seem to be complaining much when they were picking up their sweet FREE Adobe water bottles. And they certainly weren’t complaining when they were eating and imbibing at the Adobe sponsored after party. I’m just saying.  Sponsors help make conferences go. If it means you have to listen to a pitch every now and then who cares.  Get over it!  

After the general sessions, the breakout sessions usually begin,. Now a lot of conferences organize them into tracks, meaning that they have the schedule set up so that you can stick with one topic area should you want. For example, they may have a back-end track, a front-end track, and a mobile track.  At NCDevCon this year they didn’t have any definable tracks, but I figure that is because they had such a variety of topics to choose from.

For someone trying to play catch up, a conference like this offers a great opportunity to get schooled across the realm of programming.  Of course we are talking, in this case anyway, about an  hour a topic. It’s hardly enough to time to truly LEARN everything, but it definitely gives you a chance to wrap your arms around it and gives you a starting point for further exploration.

Case in point, there were a handful of sessions on CSS.  I hate CSS! Ok, I don’t hate it. And I do work with it in my projects obviously.  But sometimes when you are trying to nail down a look or a font, or size something to wrap it the right way, it gets flippin’ maddening!

On day 1, the first and last sessions I chose involved CSS. The first was actually a talk on how to convert desktop apps to mobile by Jessica Kennedy.  Jessica, unlike me, is a HUGE fan of CSS!  I sat in amazement as she showed some tricks that she recommends for being able to manage both a desktop and mobile application.  She won me over.   I actually started to get excited about the possibilities. I really need to revisit CSS. It looks like a blast!.

The last CSS talk I saw that day really showed how to press the boundaries of CSS. It was given by Brandon Kennedy, who as it turns out is very happily related to Jessica. Brandon and his chill preso showed what just a few lines of code can do to make sites come alive. Most of it was way over my head, but definitely something I will explore a lot more!  I am looking at CSS in a whole new light. And  I owe the transition of my opinion to the bold style of the animated couple……see what I did there?

Beyond the learning of course is the networking. Whether or not you are looking for future opportunities like I was, you  should always take the time to talk to other attendees. Or, if you are shy like me and don’t know how to start a conversation, just rudely insert yourself in an ongoing one and smile and nod a lot.  They may think you are weird, but keep those ears open and you may just learn something.

Now conferences generally are not cheap.  Most assume you are going to have your employer pony up the dough for it. But more and more companies are running on leaner and leaner budgets these days, so that is not always an option. One of the things I love about NCDevCon is its affordability. Its tickets this year were only $200 bucks, and I believe it was half that for the Early Bird registration.  Now I had to go on my own dime this year and wondered if I would feel I got my money’s worth. I did ten times over!  Well worth the price!

So to bring an end to this seemingly endless diatribe, let me simply say this. If you are trying to keep up with technology, keep pace with the industry, and feel out potential opportunities for future growth….conference it baby!  Find a local one or one in a place you would love to travel to  (like Vegas or something). But take the time and money to go. You will learn a lot, feel more connected to the profession, make new contacts who could be useful resources, and, if it’s anything like NCDevCon, enjoy some really amazing food!.

Now don’t go away….we’ve got a great interview with one cool dude…come up after this.

(BEGIN Fauxmercial: “Progeny.js”)

Announcer:

ARE YOU A PARENT? ARE YOU TIRED OF TELLING YOUR KIDS TO DO THINGS LIKE CLEAN THEIR ROOM, DO THEIR HOMEWORK, OR TAKE OUT THE TRASH, ONLY TO HAVE THEM QUOTE UNQUOTE “FORGET” TO DO IT?

WHAT IF IT COULD BE SIMPLER TO GET THEM TO RESPOND? WHAT IF YOU COULD LEVERAGE THE POWER OF NODE.JS TO GET IT DONE?  

IF YOU’VE BEEN FASCINATED AT HOW NODE JS CONTROLS QUADCOPTERS, AND INTRIGUED AT HOW IT OPERATES ROBOTS, YOU WILL BE SIMPLY AMAZED AT WHAT IT CAN DO FOR YOUR KIDS! INTRODUCING, PROGENY,  A NEW MODULE FOR NODE JS.

ONCE YOU HAVE INSTALLED PROGENY, PARENTING IS SNAP. JUST CREATE A INSTANCE OF THE PROGENY OBJECT FOR EACH OF YOU CHILDREN AND YOUR ON YOUR WAY.  PROGENY’S API INCLUDES METHODS YOU WILL USE OVER AND OVER AGAIN.

FOR INSTANCE YOU CAN TRY THE POPULAR CLEAN METHOD. JUST PASS IT ANY ARGUMENT LIKE “ROOM”, “DISHES”, “LITTERBOX”, OR EVEN “SELF” AND WATCH THE BUBBLES FLY!

YOU CAN PASS THE STUDY METHOD A SINGLE ARGUMENT,OR AN ENTIRE LIST OF SUBJECTS AND WATCH YOUR KIDS CRACK THOSE BOOKS!

PROGENY EVEN HANDLES REST! NO, NOT THAT REST! BUT THIS REST IS FAR MORE USEFULL! JUST CALL THE REST METHOD, PASS IT THE EXACT NUMBER OF MILLISECONDS YOU WANT YOUR CHILD TO SLEEP, AND ITS LIGHTS OUT! EVEN BETTER, YOU CAN PASS THE REST METHOD AN EVENT LISTENER….JUST IMAGINE THE FUN YOU COULD HAVE WITH THAT!

BEST OF ALL, PROGENY CAN BE RUN ASYNCHRONOUSLY. SO PLAN OUT YOUR KIDS’ DAY, EXECUTE THE SCRIPT, AND FORGET ABOUT IT. YOU CAN RELAX BY THE POOL, IN THE YARD, OR AT THE BEACH, SECURE IN THE KNOWLEDGE THAT PROGENY AND NODE JS HAVE EVERYTHING UNDER CONTROL.

PROGENY, A NEW MODULE FOR NODE JS. NOW NODE REALLY CAN DO EVERYTHING!

(End Fauxmercial)

(Interview with Ben Nadel)

Script:

I’m walking around NCDevCon here and you are not going to believe who I ran into. We’re talking the man, the myth, the legend, Ben Nadel himself. I’m telling you, if you guys don’t know who Ben Nadel is, welcome to ColdFusion programming because you’ve obviously been doing it for only two days. I’m telling you, if you ever, ever have a problem and you Google it, you are going to end up on Ben’s site. If you haven’t done that, good luck to you there. I guess the first question Ben, welcome by the way.

Ben Nadel:

Thank you, great to meet you, sir.

Script:

The first question I got to say is do you go looking for trouble or does it just find you?

Ben Nadel:

I’ve been very happy to come across a lot of trouble in my daily work. I just try to write about it as best I can and share solutions to the hurdles that I have fallen over and hurt myself on. I’m just a lucky man in that sense.

Script:

How long ago did you start all this?

Ben Nadel:

I’ve been blogging since 2006. It just started out as something … I don’t even remember how I started. I was just excited to learn. I love learning. It’s like I get up in the morning and I’m excited to learn. I’m excited when I get to try new things at work. I’m excited when things are difficult because it means something new to learn, something new to write about. It sort of just took a life of its own at some point and it became … Sometimes it’s a passion and sometimes it feels like a job. I get up in the morning and I do it. I just try to keep the momentum going. It’s been 10 years now, 2016.

Script:

I’ve always said for all the work you saved every programmer out there owes you two, three drinks, me included.

Ben Nadel:

I appreciate that. I’m still shocked when people say that. When people come up to me and they’re like, “I want to thank you. I read your website.” I’m blown away. I’m still surprised anytime anyone even noticed who I am.

Script:

That’s absolutely awesome. We know that for many years you were working on ColdFusion, but tell everyone what you’re working with now.

Ben Nadel:

We have teams that are more specialized doing what I do, but because I’ve been with my company for so long, I have a lot of tribal and historical knowledge. I can jump around and help fix bugs, help work on database bottlenecks, help work on code. I work in ColdFusion. I work in Angular 1.x primarily. I try to jump over and do a little React with the teams that do React. I work with MySQL. I do a little bit of Redis, a little bit of MongoDB. Just a little bit all over the place.

Script:

Showing off again, aren’t you?

Ben Nadel:

No, trust me. If you saw me doing any of these things, it would not be showing off. I can show off maybe in ColdFusion and some Javascript. Everything else is like just trying to not make it break.

Script:

One of the other things about your blog, I just hit you up for this, is you have been taking photos of people at conferences over the years. How did that all get started?

Ben Nadel:

You know what it is too is I am by nature a very shy person. The photos also help push me out of my own comfort zone. I feel like I got to psyche myself up to talk to people. I got to psyche myself up to ask for a photo at this point even all these years later. Part of it is how I try to grow as a person and part of it is, the fun part of it is community building. It’s just great. I love doing it.

Script:

You’re not even going to admit that it’s really about hit counts? I ain’t going to tell you how many times I’ve refreshed that screen just trying to get an idea of who’s who in the community.

Ben Nadel:

I will not fight any collateral benefit that comes from it, sir, absolutely not.

Script:

Just so you know, for all the listeners out there, if you want to see what I look like, I just got a great picture with him, which he’s already agreed he’s going to leave up as the primary picture for the next three weeks. Maybe, maybe not, we’ll see how that one works out. The other thing that you have on your blog, which is awesome, totally awesome, is the jobs board. I may or may not have gotten a few interviews that way. I refuse to talk about that, but I’m just going to ask how did that come about?

Ben Nadel:

I was charging I think like $199 at some point. I think I started charging $99. I got to a point in my life where I wanted to start giving back more, consciously, so I started to donate a portion of each job post to Kiva, which is a crowd-source loan site. That almost became more interesting to me than the job posts themselves. I finally just lowered the price to whatever covers the Kiva loan. I think now a job posting’s like $29. That just covers the $25, plus the processing fee to Kiva. It’s just exciting for me to be able to help the community in whatever tiny way I can, and then funnel that back into kind of a greater sense of the common good.

Script:

Has anybody ever thanked you for getting them a job that way?

Ben Nadel:

Yeah, a couple times. I almost sort of think it’s never helping, but I have a couple of times in person, people have said thank you. A couple of people have emailed me and said they’ve gotten it. It’s a low traffic. It doesn’t have a lot of posts typically, but occasionally it gets lucky. I feel really good about that actually.

Script:

I for one, absolutely thank you. I appreciate that. Ben, it was a pleasure to meet you. If you guys haven’t checked out his blog, it’s BenNadel.com. Believe me, you’ve probably found it by Googling it, but just check it out. Hang in there. Follow him on Twitter too and see the great adventures of his dog. What’s the dog’s name?

Ben Nadel:

Lucy.

Script:

Dog’s Lucy, vacation out in nice exotic places I see.

Ben Nadel:

Any opportunity to take the dog to the beach makes me happy. Chris, it’s wonderful to meet you. I really appreciate the opportunity to sit down and talk.

Script:

Thanks a lot, Ben. Take care.

So that wraps episode 2 of Wake Up! With Script Van Winkle. I want to personally thank Ben Nadel for taking the time to sit down and talk with the weird unknown dude shoving an iPhone in his face.  Seriously though I had wanted to meet Ben for a long time and he did not disappoint.  As you could hear a truly down to earth guy with positive attitude and pretty good programming chops to boot.

And thanks to the organizers of NCDevCon for graciously taking my money…….and giving me an experience back worth so much more.  The organizers and volunteers here are the best!  And, in case I didn’t mention it, all of the talks will be online shortly. So if you were there and missed a few sessions or couldn’t make the event at all, it’s all there for you to check out! Just visit NCDevCon.com.

Now, this was kind of a special episode. I’m going to get more into technical things in the next few episodes. So 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.

In a Fog – #NCDevCon Day 2 Live Blog 1

NCDevConLogo

NCDevCon North Carolina’s Premier Web & Mobile Conference

Day 2 of the the awesome tech conference #NCDevcon is well underway.  Participants were treated to a beautiful if not eerie fog which had settled over the area this morning.  Quite a few participants seemed to be in a fog too including yours truly.  Thinks are so much quieter this morning. After receiving all that amazing information yesterday it seems many are still processing. But who has time for that?!?  Still another day’s worth of learning ahead!

I kicked off my day with Building APIs in LoopBack by Raymond Camden.  Again, I am learning Node.js and have a few personal projects I want to build as APIs, so this was a natural.  It was a two session period with the first being discussion about LoopBack api framework and the second being a hands on session build an API.  To be able to do the handson stuff I needed to get my laptop set up with Node, LoopBack, and MongoDB.  I spent a good chunk of the first half trying to pay attention to the cool information and whip this old laptop in shape. The laptop refused to cooperate in the end…so I went “hands off” and bailed at the halfway point. Sorry @RaymondCamden!  Was looking forward to the hand on stuff. I am sure it was a blast!

So I hopped over to Git Source Control: for the Rest of Us by Nolan Erck (@southofshasta).  It was a great talk on using graphical tools like SourceTree to work with source control (Git in this case). I knew most of it of course, but still nice to see how other people set up their source control.  Big crowd. Lot’s of questions.  Good session!

Planning to wrap up the day with You Don’t Know Node.js by Azat Mardan (@azat_co).  I have some personal business to handle this afternoon so sadly I will be missing  the cool stuff planned for the afternoon.  I’ll split right after I grab lunch. So grab me there (and early into it) if you want to chat me up.  Otherwise, enjoy the rest of the day!  It has been a pleasure hanging out and meeting all of you.

 

ORM / CSS – #NCDevCon Live Blog #3

NCDevConLogo

NCDevCon North Carolina’s Premier Web & Mobile Conference

Apparently my afternoon sessions were all about three letter abbreviations.  Kicked it off with the ORM talk by Masha Edeler.  I’ve played with ORM, thought I knew ORM, but learned things I didn’t know! I especially learned about creating properties which were subsets of  a table and other properties that can be defined by a simple SQL statement, I also learned more about HQL I didn’t know. Nice job. Check it out online when available.

Wrapped up the learning day with  Thinking Outside the Box With CSS  by Brandon Kennedy. CSS is definitely cool!  But some of this stuff can make my head hurt!  Brandon demoed a ton of cool animations and showed how simple they can be!  I did feel better about myself when he talked about using and studying the Animate.css library.  I discuss my experiment with it in Episode 1: The Wind Up and the Pitch! Playing with HTML 5 Animation of my podcast.  HINT HINT!  Check it out!

Hey!  It’s After Party time!  Find me! I need people to help me record the new podcast intro!  Look for the dork in the red Mickey shirt!  Be nice to him!  I’m sensitive!

Cookies and Treats! – #NCDEVCON – Live Blog 2

NCDevConLogo

NCDevCon North Carolina’s Premier Web & Mobile Conference

The term “Cookies” in development of course has multiple meanings.  But at #NCDECVON during the break sponsored by Strongloop, cookies were plenty and sweet!  Delicious cookie sandwiches filled with coma inducing filling.  Sorry for those speaking afterward….I forsee a lot of snoring!  Don’t take it personally!

Another “treat” was Raymond Camden’s talk on APIs….well…except he called an audible. Instead he tested out another talk he is working on about changes in programming.  Nostalgic man!  Nostalgic!  He even showed a program printed in “Family Computing” magazine in the early 80’s I believe.  Man I felt old!  I remember putting the program into my Apple II compat. computer (Franklin Ace 1000) and watching it works. Thanks for making me feel old Raymond!  Seriously!  Funny and inspiring talk though.

I also caught Matthew Eash’s talk on Node.js, in particular the Express framework.  Still can’t say I fully understand it, but it definitely started to make sense to me.  Pretty flipping cool for sure!

Ok, back to business. Hope the caffeine kicked in.  Getting ready for Less Hate, More Love With Coldfusion ORM  by Masha Edelen.  Met her earlier and am looking forward to hearing talk on the topic. Let you know how it goes!

Live(ish) Blogging – #NCDEVCON – Report 1

NCDevConLogo

NCDevCon North Carolina’s Premier Web & Mobile Conference

Ok. So it’s not exactly LIVE blogging (as I am sitting here after an AMAZING BBQ meal)  stealing power and getting ready for the next session. But already, #NCDEVCON has proved to be a great conference!

I have always loved the clear as a bell tape lines helping streamline the checkin process (you guys should patent it).  Then things kicked off with a session on API’s by Elisha Dvorak from Adobe. Elisha talked about the future trends of apis and microservices and how ColdFusion is positioning itself to make those easier to handle.  It was 50,000 ft look at apis for sure but I left knowing more about an area I do find engaging.

Session breakouts after that. I can, of course, only cover those I actually attended.  For me, I kicked up Small Screens, Big Rewards! The Experience of Converting Desktop Websites to Mobile by Jessica Kennedy.  She was fun, informative and a great evangelist for mobile and CSS. I am one of those many developers that are driven mad by CSS…..hate it!  But Jessica really turned my thinking on it.  Looking how seamlessly and quickly it seemed she could make things rearrange, resize, and realign with a few simple code changes was awesome!  I left really jazzed about CSS!

My next session was one put on by Raymond Camden  called Everything They Didn’t Tell You About Hybrid Development.  Always informative and always entertaining, talks by Raymond are usually no-miss.  I learned a lot as he described some dos and don’t with regard to using Cordova to do mobile app development. He spent a great deal of time on the your persistance options (Indexed DB, WebSQL, SQLLite, etc,)  He also mentioned some great tools to use as well.  Kind of wished I had experienced using Cordova before attending but hey, I’ll keep the info tucked away until I need it.

And then lunch!  Did I mention the Carolina pulled pork BBQ and mouth-watering BBQ sauce?  And the baked beans?  Take it from a guy who thinks baked beans is the only side a meal should ever have….they were killer!!!

Well, ready to get my Node on…..Build Your Backend in Node.js  by Matthew Eash. That is assuming I can get my backend up and moving after that lunch!

#NCDevCon – What I am going to see!

NCDevConLogo

NCDevCon North Carolina’s Premier Web & Mobile Conference

I’m getting ready to leave today for NCDevCon, the fun, cool, and informative development conference taking place in Raleigh, NC this weekend.  As of this writing they still have about a dozen tickets left. So if you are going to be in Raleigh, buy your tickets RIGHT NOW (go ahead, I’ll wait).

Did you get them? Awesome!  Now lets talk agenda. There are some great sessions going on. It was really hard to narrow down what I am going to. But here goes. By the way, just because I don’t mention or did not select a particular session doesn’t mean it’s bad…it just means either it’s not applicable to my current or future work or that, more than likely, there is just a more applicable topic competing head to head with it.  The truth is there are some awesome speakers and sessions I will be missing because they compete with something more applicable.  The good news is these are all video recorded and made available online afterward…so I won’t be missing them!

Speakers, feel free to lobby for your talks because I could be convinced.  And fellow attendees, if you are in any of those sessions, come say hi!  If you list nearly matches mine, definitely say hi because it’s always cool to have a group to travel around with between rooms.

———————————————————–

Sat. 9am –  This is the opening presentation by Adobe Systems. A good chance to hear future updates and also see who else is at the conference!

Sat. 10am – UNDECIDED! HELP! – Torn between Small Screens, Big Rewards! The Experience of Converting Desktop Websites to Mobile by Jessica Kennedy, because I work with a site that could use a mobile conversion,  and Writing Highly Organized CSS by Tyler Benton because my CSS can be a mess!  Thoughts?

Sat. 11am – UNDECIDED! HELP! – Ok, this one I had nailed down a topic for weeks ago. But the schedule was changed and now I am unsure.  Probably end up at Everything They Didn’t Tell You About Hybrid Development with Ray Camden because….well…its Ray Camden

Sat. 1:30pm – Build Your Backend in Node.js with Matthew Eash. After picking on Node.js developers the last few years, I dove in and really like Node so far. So it’s a “node-brainer” that I would choose this.  Yes, my puns really are that bad.

Sat 2:30pmBuilding APIs – StrongLoop Session – Looks like another general session

Sat. 3:40pm – Why Your Next App Should Be Serverless by Todd Wacker.  Serverless….sounds intriguing.

Sat. 4:40pm – Thinking Outside the Box With CSS with Brandon Kennedy. I’m more of a backend guy, but keeping abreast with the frontend is not a bad idea.

Sun. 9:00 am – Building APIs in LoopBack with Ray Camden – I generally skip multi-period sessions, but it’s Node and Ray Camden. Hello!

Sun. 11am – You Don’t Know Node.js – Azat Mardan. Node…what more can I say.

I have some personal business to attend to while in Raleigh so I need to miss the afternoon sessions. But I would have gone to see Delivering the Dude: Continuous X – Brent Pabst because I really need to learn and embrace the CI concept.  Oh well, add that to my video sessions.

So that is my list.  See you there!

 

 

Different Strokes for Different Folks

In my search for new opportunities I have had a couple of interviews so far. The interesting thing has been the varying philosophies I have encountered with regard to development.  Things one firm swears by the other despises.  It has been an interesting exercise in trying to determine what these are and how to navigate the minefield without abandoning your own preferences. Here are just some of the differences I have encountered.

Source Control

First off, believe it or not, there are still quite a few shops that don’t use it.  Over 50% of companies I have talked with so far don’t use it!  To be fair, when I started my current position back in 2012, I had not used source control either.  So I had to quickly learn how to use Subversion (SVN).  Much to my boss’s chagrin, that learning curve was steep and deeply conflicted! But with time and discoveries like “bunny hopping” (for example merging Staging branch into your project branch first, then merging project branch into Staging) things got better.  Then when we decided to finally “Git” with the program things have really hummed along nicely.  I swear by Git for all my home projects. I have even tried to use Git to version my music compositions.

At least in most cases these businesses are saying they plan to move to source control soon.  But which one? Git or Subversion?  In my observation there is a feeling that Subversion is more in align with “corporate” and Git more in line with “startups”. I definitely don’t agree!  But again I am partial to Git so I may be biased.

Object Relational Mapping (ORM)

Watch where you step on this one!  Wow!  I have played with ORM and like it, but also recognize that it is not always appropriate, especially if your business model involves complicated queries.  Yet I assumed going in that you would not be considered a “modern” developer if you weren’t using it. In fact, many job postings include phrases like “MUST HAVE EXPERIENCE WITH OBJECT RELATIONAL MAPPING”.

So imagine my surprise when in one interview I was asked “What experience have you had with ORM and are you comfortable with it?”  and when I finished explaining that I had played around with it and found it to be easy and useful, the interviewer snapped passionately about how much they HATE it. Lesson learned. Need to feel out my audience on this one.

Those opposed to ORM I have generally found to be people who love SQL. I know that when you are sitting elbow deep in a query with 70 joins on 50 different tables it is hard to believe there are people who love it, but trust me there are!  I can see why  people who eat stored procedures for breakfast would hate to use ORM.  It would be like telling classic car nuts who love to cruise around, that they can only legally use Google self-driving cars from now on.

Stored Procedures and Inline SQL

One of my personal pet peeves is seeing a SQL statement written right into a ColdFusion page.  Call me crazy, but I think SQL belongs on the SQL server.  So I do my best to move all inline SQL I find into a stored procedure on the SQL box and just call the stored procedure from CF.  Some places I have met with say “Right Answer!” when I lay that out. Yet others have suggested that they don’t like stored procedures at all and only use them when a query is extremely complicated.  Many said they prefer to put their SQL directly into a  DAO (data access object).  I guess at least this puts it outside of a CFM page and into a CFC.  That is more tolerable to me, but still not my preferred way of working.  But at least on this topic there does not seem to be as much passion.

Frameworks

The biggest differences here are not what you would expect.  I haven’t encountered any heated battles over ColdBox vs. FW/1 vs. Mach II.  The opinions are over whether or not a framework is needed.   To me, if you are doing anything remotely complicated that answer is yes.  But to a certain extent I can see the other side of the argument.  In most cases, those companies I have talked to who don’t use frameworks, admit that they have kind of put one together on their own.  I suspect that is usually the case in instances where no formal one is used as it is just a natural extension of good programming.

Languages 

Since I am a ColdFusion developer most of the opportunities I have explored have been in that realm.  But even in those cases, some companies are looking to migrate away from it.  Here there is a definite split!  Some are leaning toward the wonderful world of PHP. Makes sense. It’s open source, borderline free depending on what you are using it for, and has good solid applications like Magento.

Other companies are leaning toward .Net and C#.  I imagine a lot of it comes down to the same argument had about source control.  .Net for “corporate” feel and PHP for “startups”.  Time will tell I guess.  But I also see me needing to learn both in the near future!

What else?

So what other arguments have you encountered out there in the wild?  What are your thoughts on each of these above.  Leave your comments below and let’s get the discussion rolling!

 

 

« Older posts

© 2017 Script Van Winkle

Theme by Anders NorenUp ↑