Slides and Code from My cf.Objective() Presentation on Amazon Web Services and ColdFusion

The cf.Objective() conference is always an opportunity for me to learn from some of the smartest people in the CFML community. This year was no exception, and I'm grateful to the conference content committee for again inviting me to speak.

Attached to this post is a PDF of the slides used in my presentation "Level Up Your Web Apps with Amazon Web Services." The code that I used in the presentation can be found in the GitHub repo for the AWS Playbox app. There's a full set of instructions in the readme file on what you need to set up in AWS to get the app fully working.

Slides from Into the Box Presentation on Leveling Up Your Web Apps with Amazon Web Services

First off, a huge thanks the entire Ortus Solutions team for hosting the very fun Into the Box conference. Though small in total size, the conference had a lot of really good, higher level sessions about CFML and Web apps in general. The Ortus team really is making great tools for the CFML community.

Attached to this post are a copy of the slides from my presentation "Level Up Your Web Apps with Amazon Web Services." The git repo that accompanies this presentation contains the same code examples that I showed during the presentation, along with a bonus demo of Simple Notification Service (SNS).

Thanks again to everyone who attended the session!

Speaking at Into The Box on Leveling Up Your Web Apps with Amazon Web Services (AWS)!

The *Box team at Ortus Solutions are an amazing group of people who have done a ton of work to make the CFML community stronger and better over the past few years. I'm excited that I'll be speaking at their annual conference -- Into the Box!

Anyone who's seen me talk in the past couple of years knows that I'm a big fan of Amazon Web Services (AWS). It's been enormously helpful in expanding my team's functional and skill set. We've built some pretty cool automated pipelines using AWS, and AWS allows us to provide a significantly better customer experience to our students around the world.

At this year's Into the Box, I'll be talking about "Leveling Up Your Web Apps with Amazon Web Services." Specifically, I'll cover:

  • Super fast, infinitely scalable file storage with Amazon Simple Storage Service (S3)
  • Distributing static assets globally with a powerful content distribution network (CDN), CloudFront
  • On-demand microservices in Node.js or Python and how to invoke them via CFML through AWS Lambda
  • Persisting data in high-throughput NoSQL datastore with DynamoDB
  • Planning for common problems when dealing with cloud service providers

You'll walk away from the session with knowledge to get started using AWS right away, and a bunch of sample code to invoke AWS services from your CFML apps.

Early Bird pricing runs through March 1, 2017, so now is a really good time to register for this excellent conference.

Slides from "Accessible Video Anywhere with ColdFusion and AWS"

This year's ColdFusion Summit conference was the best one yet. With a lot of new attendees (and people new to ColdFusion!), there was a great attitude and the sessions, overall, were very good. The customer showcase track, in which I spoke, was a great addition to the conference, and one I hope Adobe continues in future years.

Attached to this post are my slides from my talk "Accessible Video Anywhere with ColdFusion and AWS." I want to thank everyone who attended and asked some really great questions!

If you have questions about building serverless workflows in AWS, or integrating ColdFusion with AWS services, please feel free to contact me!

Speaking as Part of the ColdFusion Summit 2016 Customer Showcase

This year's ColdFusion Summit features a new track of sessions focused on customer success/showcase stories, which I think is a great addition to the program. I've always enjoyed when technical conferences have real people come out and talk about how they solved problems with a specific technology — problems and all. I don't care a whit for sales sessions where a company says "Our product is *sooo* great, go buy it now, it'll solve all your problems!" I like hearing when a company says "We used X because it helped us solve this problem, here's how we did it, and here are some of the issues we ran into."

I'm pleased that I get to speak as part of this track.

My presentation is "Accessible Video Anywhere with ColdFusion and AWS." I've been speaking about ColdFusion and Amazon Web Services for a couple of years now, and I thought it was high time that I showed how we leverage multiple AWS services in our educational production workflow at Hopkins.

Here's the session description:

Developing and delivering tens of thousands of hours of video content every year isn't a simple task. You've got to encode for a variety of devices, and deliver the video as quickly as possible to consumers all over the globe. To add to the complexity of this work, laws around the world require that you caption every video to make it accessible to as many people as possible.

In this session, we'll look at how Johns Hopkins has built a custom video encoding, captioning, and delivery pipeline with ColdFusion as the controller tying together numerous different services -- most of which run in Amazon Web Services (AWS). We'll look at a whole host of technologies in AWS: Lambda for serverless computing, Elastic Transcoder for transcoding, DynamoDB for data storage, Simple Notification Service and Simple Email Service for process notification and delivery, and CloudFront for global content delivery. We'll also see how ColdFusion is the glue that holds the AWS, third-party captioning API, and content management systems together. You'll leave with a blueprint for building your own multi-service ColdFusion/AWS hybrid app, and learn how to avoid some of the pitfalls we encountered along the way.

The session is a lot less about code and much more about how you can put together a series of services to make an automated production pipeline with ColdFusion at the center. It's great to be talking about a project which made such a difference for me and my team, and I hope that you'll be there to hear all about it!

Slides and Code from My dev.Objective() Talk "Level Up Your Web Apps with Amazon Web Services"

I really enjoyed presenting at dev.Objective() again this year. In spite of a projector disaster at the beginning of the session, I thought the talk went surprisingly well. The audience asked a lot of great attendance, and I was thankful that so many people showed up and waited patiently for the projector issues to get resolved.

The slides from my presentation are attached in PDF format to this post. You can view the GitHub repo for the demo app that I was using as well. There's a full set of instructions for getting the demo app up and running in the repo.

Go play with AWS. I'm sure that there's at least one service (or more!) which will help you build better, more powerful web apps!

Back to dev.Objective to Talk About Leveling Up Your Web Apps with AWS

I'm a lucky developer and educator. Each year, I'm invited to speak at a number of web development, CFML, and educational conferences. I'm making my fifth speaking appearance at dev.Objective() this year, and I can't wait to get back to Minneapolis. I love the town, and, more importantly, I love the conference. I'm always challenged by what I learn there and find myself sitting in session after session thinking "Yes! We should totally do this!"

I hope that people will feel the same way about my presentation at this year's dev.Objective(): "Level Up Your Web Apps With Amazon Web Services."

Amazon Web Services (AWS) is pretty awesome. I'm not shy about saying that (repeatedly). Most developers know about AWS because it provides a vast army of on-demand servers on which you can run anything, including Node.js, PHP, or ColdFusion. AWS offers a whole lot more than servers in the cloud, though. AWS is comprised of over 30 services which enable powerful Web/mobile application functionality and you can tap into nearly all of them using your favorite programming language. With only a few lines of code, you get powerful, hugely scalable functionality that would otherwise be near-impossible to build yourself.

I'll be showing off a number of these services — CloudFront, SNS, Lambda, DynamoDB, and a little bit of S3 — and while my demo code is fairly CFML-centric (I build new tools with CFML every day), there will be examples in Node.js and Python as well. AWS is language-agnostic (as long as your language can speak HTTP/S), and dev.Objective() is pretty polyglot, so it's good to show examples in multiple languages!

In case you haven't registered for the conference, dev.Objective() has extended their $899 price through May 24, 2016. It's worth every penny.

I'm Speaking at the Adobe ColdFusion Government Summit on March 9

In addition to the ColdFusion Summit in Las Vegas, Adobe has this year decided to hold a one-day, government (well, DC-area) specific conference. The Adobe ColdFusion Government Summit is on March 9, 2016 in Washington, DC. I'm one of three non-Adobe employees who has been asked to speak at the conference, so I'm both excited and thankful to the Adobe ColdFusion team for the opportunity.

I'll be speaking about caching in ColdFusion along with performance enhancements made around caching (specifically, using Redis as a session storage cache) in Adobe ColdFusion 2016, the forthcoming release of the product. I've spoken about the crazy simple, crazy powerful caching tools in ColdFusion in the past, so I hope to show attendees how simple it is to vastly speed up performance in ColdFusion apps by using simple caching techniques.

If your'e in the DC/NoVA/Maryland area, the event is free and open to anyone, not just government employees. Space is limited to 50 people, so if you haven't yet registered, now is definitely the time to do so!

Slides and Resources for My ColdFusion Summit 2015 Presentation on Using AWS Services from CF

This year's ColdFusion Summit had the biggest attendance of any ColdFusion Summit thus far, and was another good conference in a year of pretty darn good conferences. Although my session on using Amazon Web Services from ColdFusion was scheduled in the last slot of the last day, I had a great turnout with an enthusiastic response and some great questions.

Below are links to both my slides with and without presenter notes, and to the GitHub repo for the demonstration application that I used in the presentation:

The demo application shows you how to connect to the following Amazon Web Services from ColdFusion:

  • Simple Notification Service
  • Lambda
  • DynamoDB

The slide deck also talks about CloudFront, but there isn't any demo code for that. The repo for the CTL CloudFrontUtils package is publicly available, and should help you a lot if you need to sign CloudFront URLs in ColdFusion. We also have a similar package for signing requests to Simple Storage Service (S3) from ColdFusion, as you'll need that if you want to do change file names or set other attributes on the fly when working with S3 from ColdFusion.

The GitHub repo has pretty lengthy instructions on how to get it set up, and includes the list of resources you'll need to set up in AWS in order to get everything to work. It may seem like a lot of setup, but one glance at the code should show you how very simple it is to interact with Amazon Web Services from ColdFusion once you do have the basic resources in place.

Don't forget that there is also the AWS sub channel on the CFML Slack channel. I'm often there to answer questions and, if not, there are other knowledgeable CFMLers who current work with AWS who can answer questions as well.

Getting the Latest AWS Java SDK to Work with Adobe ColdFusion

I'm really happy to speak again at this year's Adobe ColdFusion Summit. My talk next Tuesday is titled "Expand Your ColdFusion App Power with Amazon Web Services." People who know me know that I'm all about AWS and the awesome power that their ever-expanding suite of services provides. I'm also about ColdFusion and how incredibly easy it makes app building on top of the Java Virtual Machine, and how easy it is to tap in to the hundreds of thousands of Java libraries that are out there to make your ColdFusion apps more powerful.

One of those libraries is the AWS Java SDK, and you're going to need that library if you want to do anything in AWS that goes beyond the simple, easy, kinda powerful support that ColdFusion has for Amazon S3 (Simple Storage Service). ColdFusion makes it drop-dead easy to utilize S3 because it provides a series of tag and function-based wrappers for the underlying AWS Java SDK to access services within S3.

If you want to do more with AWS in Adobe ColdFusion than just utilize S3, however, you're going to need to create objects and call methods on the objects in the AWS Java SDK. The problem you'll quickly run into is that the version of the AWS Java SDK bundled with Adobe ColdFusion — even ColdFusion 11 — is pretty old. If you want to use any of the services introduced in the last two years, like Lambda or the API Gateway, you're going to need to use an updated version of the AWS Java SDK.

You cannot, however, just drop the latest AWS Java SDK into your cfInstallRoot/lib directory and be done with it. You also can't use the new Java class loader introduced in Adobe ColdFusion 11 to load up the AWS Java SDK .jar files. That's because a version of the core AWS Java SDK .jar file is already in cfInstallRoot/lib and trying to load a new version on top of that .jar using Java loader in Adobe ColdFusion 11 and beyond will conflict with the one that's loaded during app server startup.

I'll be covering this briefly in my talk, so I thought it would be best to post instructions on how to use the latest AWS Java SDK in Adobe ColdFusion for both those in attendance at the talk and for future general reference.

To get the latest AWS Java SDK working in Adobe ColdFusion 10 or later, do the following:

  1. Download the latest SDK from from https://aws.amazon.com/sdk-for-java/
  2. Move the current aws-java-sdk-x.x.xx.jar file from your cfInstallRoot/lib elsewhere for backup.
  3. Move the aws-java-sdk.jar from the download into your cfInstallRoot/lib directory.
  4. Inside the "third-party" folder in the download, move the following .jar files into your cfInstallRoot/lib directory:
    • jackson-annotations
    • jackson-core
    • jackson-databind
    • joda-time
  5. Restart ColdFusion

It used to be that the AWS Java SDK was one monolithic .jar which included all third-party dependencies. Amazon changed things a while back to make it easier to manage dependencies using tools like Maven by breaking out the SDK's dependencies. This is why you can't just drop the aws-java-sdk-x.x.xx.jar file into the cfInstallRoot/lib directory and have things work.

The AWS Java SDK actually requires quite a few more third-party dependencies but fortunately most of those are already bundled with Adobe ColdFusion (version 10 or later) and have only patch version differences between what's in bundled with Adobe ColdFusion and what's bundled with the AWS Java SDK. I've not experienced any problems at all on that front.

More Entries

BlogCFC was created by Raymond Camden.

Creative Commons License
The content on http://www.iterateme.com/ is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License.