Wednesday, October 03, 2018

CFSummit 2018 - Day 2


Not feeling well today, but managed to drag myself to the conference sessions.


It was a pretty positive day of speakers. I started with the API Manager session with Brian Sappey. It was over my head since I’m new to the API Manager, but it was nice to hear so much about how it works behind the scenes and how all the functionality is available via APIs.


Next I headed to hear Minh Vo’s spirited ReactJS session. He is a first time presenter, but he did great - he showed us a React-based game he had created, spent 15 minutes on some React basics, and then dove in. There was only a bit of ColdFusion (REST calls and websocket broadcasting) but it was perfect. Great job Minh!


I was a bit sad to miss the CommandBox session, but I eagerly grabbed Brad Wood’s slides to review later. This guy’s amazing.


I headed to the session about using Amazon Web Services in ColdFusion by Keen Haynes. He seemed very nervous, but he did a great job of giving real world examples. I would have liked a bit more background about how Jenkins and Chef were configured.


The Modern CFML session - Closures and Loops Oh My - by Dan Fredericks wasn't quite as deep as I expected, but it was still nice to get a clear explanation of closures and how to use them.


The conference sessions ended for me listening to Andrew, Tim and Bryce talk about how they have grown their ColdFusion applications for DonorDrive into a large Enterprise suite and how they work as a development team. The crowd seemed a bit quiet for this one, but I thought it was great. I know we are trying to look at strategies to take our team and applications to the next level. As I said with the other sessions, I love the "real world" examples and tips, and I took a fair amount from this one.


Great conference Adobe! Thanks to the organizers and speakers! Viva Las Vegas.

Mirage Volcano Burst image - Oct 3 - Brandner

Tuesday, October 02, 2018

CFSummit 2018 - Day 1

Great first regular day of the CFSummit 2018 conference.

Much busier today as compared to the pre-conference, lots of wonderful and dedicated CF people to meet. The sessions were solid as well.

Elishia Dvorak, the rockstar of the conference, did a great job giving us a quick overview of the new Performance Monitoring toolkit - it looks like a really solid tool for debugging and troubleshooting our CF2018 applications. I'm looking forward to trying it out.

I then sat through Bouton Jone's Accessible PDF presentation. He seemed to have a great handle on accessibility, but most of the audience had generate PDF questions for him.

I thought Uma Ghotikar did a great job of her Unit Testing and TestBox session. I've been told by others that the earlier MockBox session was a good introduction. There wasn't too much new in here - if you've convinced yourself that you don't have time or resources to do TDD or BDD, there was nothing new there to change your mind. However, it was a good practical session on how to use TestBox.

Brian Klass did an amazing presentation on using Amazon Web Services Step functions. Even though there wasn't much of an obvious place for ColdFusion, it was amazing seeing how quickly his organization built workflows around serverless apps and Amazon services. Again, very practical and very inspiring.

To round out the day, I attended Dave Watts' session on upgrading legacy apps. There wasn't too much new for me here, but Dave is a great presenter and member of the CF community.

The food was good all day, and the evening pool party was a blast. Good appies and drinks, and we were entertained by Hawaiian performers that later pulled key members of the Adobe team up on stage for impromptu dance lessons. Go Tridib and David!!!

Met some great people this evening, and looking forward to another good day tomorrow. Thanks Adobe, thanks CF community!

Using Java LinkedLists in ColdFusion

At work we had a little team challenge - using any technologies, consume a weather API for each country in Europe and do it using asynchronous threads.

Of course, it was easy in ColdFusion - create 3 or more CFThreads and have them each call a function that goes off and gets the weather. Have the function contain a while loop that will keep checking weather until all the countries are complete.

At the bottom of the script after creating the threads, join them together to wait for them all to be finished. No problem.

However, one thing that gets interesting is that you have all these cfthreads grabbing countries off the list and putting the weather results back into a response packet. They are all frantically running at the same time. If you want to make sure you don't have conflicts or repeated calls, you have to use an exclusive cflock so that they patiently take turns getting a country and then wait to add their results.

What we really want here is a queue. We have lots of choices - third parties like RabbitMQ, database queues like Service Broker, etc. But in this case we don't really want to add another layer, we just want a simple in-memory queue. What about the queue datatype that is built into Java (LinkedLists and their relatives)?

I did a quick search, and I didn't see any CF developers playing with this technique, so I thought I'd try it. Sure enough, it really simplified my code due to there being no need for locking, and was very easy to use:


What do you think? Has anyone used similar techniques?

Monday, October 01, 2018

CFSummit 2018 - Pre-conference

Had a great first pre-conference day at the Adobe ColdFusion Summit this year. It's been a few years since I've been able to attend a CF conference, but how can you go wrong with a visit to Las Vegas?

Everyone was friendly with a lot of smiling Adobe faces, the atmosphere was upbeat, the service and food was great. The Hard Rock facilities are really good, and the conference rooms are very close to the room tower.

My coworker and I attended the Angular and CF pre-conference workshop. There were several great things about the workshop:

  • Speaker Nolan Erck did a good job of simplifying the process - using CommandBox and NPM to get up and running to develop a sample Angular app
  • Co-speaker Carl von Stetten did a great job of preparing APIs using different techniques in ColdFusion, from basic CFM files to remote CFCs to Taffy and Coldbox handlers.
However, the whole first half of the pre-conference session was completely wrapped up in trying to help attendees prepare their environments. It was a real shame since it really seemed like Nolan has a gift for training and has a lot to say about both ColdFusion and Angular.

It ended on a bit of a chaotic note, but I still have to say I appreciate the attempt. I worry that many of the attendees were left with the somewhat unfair impression that Angular and the current "modern development and build environment" is still too complex and out of reach for them. I do think we were suitably impressed by what Angular can do.

I feel a bit like it was a missed opportunity to attend one of the other workshops.

CommandBox and Taffy are, as always, amazing.

We managed to meet some amazing fellow developers, many of them from Texas, and swap stories.

Last night and tonight I managed to get two long walks to the Las Vegas strip. I saw an exhibition at Ballys, walked all over, and stopped in at Mandalay Bay. Tonight was the one year anniversary of the Las Vegas shooting, so I got to watch as they turned off many of the lights at 10:01pm on the Strip for a minute of mourning. #vegasstronger

Mandalay Bay - Las Vegas - October 2018


Friday, October 04, 2013

Team CF Advance

I recently threw my hat in the ring along with 60 other ColdFusion developers to be part of a "Team CF Advance". Initiated by Denard Springle, we hope to further Open Source ColdFusion/CFML projects.

The CFML language, which runs on Adobe's ColdFusion Server ( as well as Railo and Open BlueDragon), is suffering a bit. I think the community doesn't feel strong these days, and many fingers seem to be pointed at Adobe for lack of marketing. Years ago, ColdFusion felt groundbreaking - now, there are many alternatives to help developers get applications up and running quickly, and many are Open Source.

I'm looking forward to some great discussions, ideas, and I hope to contribute time and code to the cause. Regardless of its place in the market, CFML is a great language, is versatile, and is incredibly easy to learn.

For more information, head to Denard's blog post about Team CF Advance

Wednesday, September 01, 2010

Took son to his first soccer gathering - turns out they don't have a coach. Guess who got roped into coach, asst coach, manager, etc...