Monday, September 30, 2024

Mastering WebSockets with ColdFusion: Code Faster, Code Smarter

Thank you to everyone who attended my WebSockets presentation at the ColdFusion Summit. It was incredible to see such a full room and feel the excitement in the air. Your enthusiasm truly made the experience special, and it’s clear there is a strong interest in leveraging WebSockets with ColdFusion.

Unfortunately, I ran out of time before I could do the live demo section, which is always the highlight of the presentation. As promised, here is a video that covers everything I would have done in the live demo section of the presentation.

Below are links to the demo code and additional projects featured in the video, designed to help you get started with WebSockets in ColdFusion.

  • Presentation Slides
    The slides from my presentation, which provide an overview of WebSockets, their functionality in ColdFusion, practical tips, and key points to watch out for.
  • ColdFusion Summit 24 Demo Code
    This repository contains all the source code used in the demo, including setup instructions and example WebSocket interactions to help you get started.
  • AdvancedSocket
    A library designed to help maintain WebSocket subscriptions through various failure points, ensuring stable and reliable connections.
  • ColdFusion WebSockets Console
    A drop in console to assist in debugging and monitoring WebSocket activity.

I am sure I will have the opportunity to present this topic again, and I am considering splitting it into two sessions to cover the content more effectively. If that sounds appealing to you, please let me know by leaving a comment.

Your feedback would be greatly appreciated!

If you are interested in having me present this topic at your user group, feel free to contact me!

Saturday, July 20, 2024

Excited to Speak at Adobe ColdFusion Summit 2024 in Vegas!

I am thrilled to announce that I will be speaking at the Adobe ColdFusion Summit 2024 in Las Vegas! This year marks the 12th edition of the Summit, and I am honored to be part of it again!

This year, I am back to present on a topic that I am passionate about, WebSockets!

Mastering WebSockets with ColdFusion: Code Faster, Code Smarter

Fasten your seatbelts for a high-speed adventure into the electrifying world of WebSockets with ColdFusion! In this turbocharged session, you'll go from zero to hero, starting with the absolute essentials. Ever wondered what WebSockets are and why they're a game-changer in web development? Get ready to find out, and see them in action! We'll kick things off with a live coding journey, setting up and tearing apart a simple application, illuminating the path from initial handshake to full-fledged communication.

But we won't stop there! Once you've grasped the basics, we'll accelerate into advanced techniques that take your skills to the next level. Learn the secrets of sophisticated WebSocket design, master the art of stealthy debugging, and keep your connections alive and kicking, no matter what your app throws at them. With practical tips and a drop-in console for real-time troubleshooting, you'll be equipped to streamline your development and rocket your applications into the stratosphere.

This session is a fast-paced thrill ride designed for developers who are eager to elevate their ColdFusion applications with real-time capabilities. Ready to turbocharge your web development skills? Join me and unleash the power of real-time connectivity in your next project!

Registration

The Adobe ColdFusion Summit is not only filled with great content, but it is also an awesome opportunity to connect with fellow attendees, friends, community leaders and Adobe folks! All that for only $199, is quite a bargain and this year it's going to be located in a new venue, Resorts World in Vegas.

Make sure you register today for the Adobe ColdFusion Summit and be part of this experience.

Interested in getting certified?

The Summit offers the ability to get your Adobe ColdFusion Certification for an additional $199 which includes a one day workshop and exam after the conference.

Are you a student?

If you are an active adult student enrolled in higher education, then you can attend the Summit for Free! Talk about an offer you can't refuse! Way to go Adobe!

Tuesday, May 23, 2023

10 years of Into The Box!

Memories, connections, friendships, growth, and humbleness, are just a few of the words that come to mind when I think of Into The Box 2023.

Ortus has done it again, another year of giving back to the community and another conference that never disappoints. So, for those of you that have yet to make it to this conference, all I can say, is don't let another year go by that you do not join your fellow developers and peers in this intimate and, in my opinion, one of the best conferences you can ever attend for the ColdFusion community.

This year, I was honored to present "Building Human-Friendly Scheduled Tasks" with my dear friend Luis. He put me up to the challenge, and boy, was it one, but I am happy he did, as not only did I learn more about this topic, but at the same time, I committed updates to the framework and documentation. So, being known as the "WebSocket Guy," it looks like now I have been titled the "Scheduled Task Guy."

For those interested in my slide deck, it can be found here. I am still working on the UI I demoed in my presentation and hope to have a release to share with the community soon.

But enough about my presentation, as the experience was more than just that.

Instead of going down the roster of the speakers and their wonderful presentations, I encourage all to check them out at CFCASTS once they are made available.

For me, it was about the community. Starting at the speakers' dinner, where I sat next to Brian Klass, and we discussed technology, our love of food, and stories about our children. To discussing music with Saeed Bawaney and sharing photos of our newest guitars. Running into and catching up with Pete Freitag during a nice afternoon walk. Enjoying some great mariachi at Happy Box, and a funny adventure with Edgardo Cabezas. Getting to know Denard Springle and realizing we had a lot in common. And the list goes on and on.

The highlight, though, was dinner the last night with Brian, Nolan, Scott, and Chris. This one was special, and I am so grateful that it happened. Stepping outside of the boxes most of us live in on a day-to-day basis, it is great to know you are not alone in your struggles and doubts. I now know them all just a little better as they do me.

As you can see, this is just more than a simple conference. It is a place where new friendships are made, and old ones are nourished, and although this may be possible anywhere, there is something in the air when you come to an Into The Box conference that emphasizes it more.

Luis created something special at Ortus, and it is clear to see. To the entire Ortus team, I am grateful for everything you do.

To another ten years and more!

Friday, August 30, 2019

Working with FTP with TLS/SSL on ColdFusion

It appears that cfftp does not support connecting to a server using FTP with TLS/SSL, their secure connection only works if the server is setup as SFTP. So in order to hopefully help others, below is some example code of how you can do this easily on ColdFusion using Java's FTPSClient Class.

Tuesday, March 05, 2019

My ColdFusion 2016 to ColdFusion 2018 Upgrade

Well yesterday I finally decided to upgrade my production server from ColdFusion 2016 to ColdFusion 2018. I know I am a bit behind on this and those who know me, know I would have done this sooner, but honestly it has been hard to make the time. Anyways, I finally did it last night and this post is more about my experience and to give kudos for making this upgrade so pleasant.

MY SETUP

I know that not everyone's experience might be the same due to their setup / environment so to give some insight, this is how my production server was setup with ColdFusion 2016.
  • Windows Server 2016 - IIS 10
  • ColdFusion 2016 Enterprise w/ 2 instances
  • WebSockets via Proxy ( OF COURSE !!!! )
  • 2016 Auto Lock Down ( The Manual Process ... more on this later )
  • Fusion Reactor

UPGRADE STEPS

Now before I began, I did advise all my clients about the upgrade downtime and the possible bugs we might encounter after the update. Now on to my steps of how I executed this upgrade.
  1. Placed all sites on maintenance
  2. Removed all Connectors ( IIS and WebSockets )
  3. Stopped ColdFusion 2016 instances
  4. Removed instances from Fusion Reactor
  5. Installed ColdFusion 2018 and allowed it import the main instance settings.
    • Started 2018 and confirmed all settings
    • Downloaded and installed the latest update
    • After update shut down ColdFusion 2018
      The reason for this is that I wanted to use the same admin ports as 2016 was using, which is why I never had both on at the same time.
  6. Added 1st instance to Fusion Reactor
  7. Started both ColdFusion 2016 instances
    • Logged into 2nd instance and created an archive of the settings to import to new 2018 instance. I also went ahead and created an archive of the 1st instance's settings ( just in case )
    • Logged into 1st instance and removed 2nd instance ( handles windows service removal )
    • Shut down ColdFusion 2016
  8. Uninstalled ColdFusion 2016 ( bye bye old version )
  9. Started ColdFusion 2018
    • Created 2nd instance and started it
      * 1st hiccup here noted later
    • Imported settings archive to 2nd instance
    • Reviewed both instances and made sure datasources connections and mail settings worked
    • Added 2nd instance to Fusion Reactor
  10. Added all connectors ( IIS and WebSockets )
    * 2nd hiccup here noted later
  11. Ran Adobe's Server Auto Lockdown on both instances.
    OMG, talk about time saver!!!!!
  12. Removed sites from maintenance mode
  13. Tested all sites
  14. Upgrade Complete!!!!
I know that seems like a lot of steps but each one executed flawlessly and the only 2 problems I ran into where simple to fix. One of them was purely my fault due to my steps.

ISSUES ENCOUNTERED

  1. Second instance of ColdFusion 2018 would not start.
    To troubleshoot this I attempted to start the instance via the command prompt using the console output command and saw that it would not start due to the Fusion Reactor Instance settings in the jvm.config file which was copied over from the first instance. I removed the settings and the instance started up without an issue. This of course would have not happened if I would have added the instances to Fusion Reactor after installing the second instances.
  2. cfws Virtual Application created by the wsconfigproxy tool set the Application Pool to Default instead of the Application Pool of the site.
    This is one of those gotcha's that I have mentioned in my WebSockets presentation and although I had stated that in 2018 it no longer happens it appears it did, so always good to check.

ERRORS ENCOUNTERED

In regard to errors, the only one I ran into is actually embarrassing and a reminder of sometimes looking at old code hurts but it humbles us. A reminder that we all started the same and that we can all make simple mistakes.

It appears that in some places, yours truly did not add a proper space between a date and a time entry when executing createODBCDate and / or createODBCDateTime. Yup, sounds silly and some might complain that it should not error out because it worked before but hey when it is your fault own it and accept a stricter and better language.

In case you are wondering how I track errors....

I use to always send myself an email containing a dump of the error so I can debug. Then Google did this little thing where the CSS for the dump was stripped and it looked like crap ( yes it affected me ). I always wanted a better way of having a record of errors outside of my email box, and Google's change inspired me to think about creating my own solution but then I learned about Sentry. Sentry is great and they have a free version of their service which is very generous ( it is what I use ). If you do not have anything in place I recommend using it or giving a try. I have a CFC to integrate with on my GitHub which you can see and download @ https://github.com/GiancarloGomez/sentry-cfml.

SERVER LOCK DOWN AND PERFORMANCE MONITOR TOOLSET

I have to say that running the Server Auto Lock Down was the best experience overall. I had to run it twice due to having 2 instances and they each took a few minutes to run but it saved me HOURS!!!! Can I say that again ... "HOURS!!!!" They both executed without any errors!!!!

I also installed the Performance Monitor Toolset so I can play with and hopefully work with the Adobe team to see if we can get it to view and debug WebSockets connections and communications. If this does occur, you can expect it in my next WebSockets presentation.

CLOSING NOTES

Like stated before, this post was to outline my process and give kudos. Most of my steps where pretty straight forward to any upgrade I have done before but the Auto Lockdown Tool takes the cake!!!!

With that being said, I would like to give ...
KUDOS and a big THANK YOU to
Adobe's ColdFusion Team and Pete Freitag!!!!
We all know Pete is the main reason we have a Lock Down Guide and now this wonderful tool plus all the other things he already provides for the community.