Posted 5 October 2018

Now that our Transcribe job is done, we can retrieve the output of the job. This isn’t quite as straightfoward as it seems, and this post will show you how to both grab the full transcript result and just the text transcript itself.

Posted 28 September 2018

We’ve started a Transcribe job, now we need to see if the job is done. Jobs in Transcribe can take seconds, or even hours, depending on the length of the source media. Jobs are never immediately completed. As such, you’ll need to approach this in an asyncrhonous manner.

Posted 18 September 2018

There are three distinct phases in working with AWS Transcribe: starting a job, waiting for the job to complete, and parsing the results of the job. This is because Transcribe is a fully asynchronous service. Transcribe cannot transcribe an hour long video in miliseconds. It takes time to do the work.

Posted 14 September 2018

AWS offers a host of machine learning services that you can tap into from within CFML. A CFML engine isn’t neccessarily the best fit for doing machine learning, so I like to leave the heavy, undifferentiated lifting of setting up and training a machine learning infrastructure to people who really know what they are doing.

Posted 20 August 2018

Text detection in an image or video stream is a really interesting — and useful — use case for Rekognition. You could use it for near real-time AR (snap a picture and detect landmarks or street signs, provide a video stream and do the same) or indexing slide text in a series of conference presentations. You could use it to “scan” business cards, receipts, or all sorts of documentation. It could be used to perform OCR (optical character recognition) on that backlog of thousands of PDFs which are just scans of documents created by your office copier.

Posted 13 August 2018

Rekognition has the ability to compare two images of a person and determine if they are the same person based on the features of the faces in each image. Rekognition can do this even when the images are of the same person over years, or decades. Like other machine learning systems, this feature is subject to bias and error, but in my work with the feature, it works quite well.

Posted 5 August 2018

Facial sentiment analysis is an interesting use case for Rekognition. This process takes an image and returns a number of pre-set attributes about the faces in that image — age range, gender, eyes open/closed, smiling/not smiling, and so on, as well as the emotions of the person in the image. While more objective measures tend to be accurate in this kind of analysis, emotion analysis is still quite subjective and, in my opinion, prone to both error and significant bias.

Posted 29 July 2018

The most obvious use case for Rekognition is detecting the objects, locations, or activities of an image. This functionality returns a list of “labels.” Labels can be things like “beach” or “car” or “dog.” This allows you to build tools like image search.

Posted 23 July 2018

CFML is a flexible and powerful language, encapsulating a lot of complexity in some fairly straightforward functions and tags. From creating PDFs to tackling the verbosity of file manipulation in Java, CFML makes it easy to do a lot in a few lines of code.

Posted 16 July 2018

SNS is a great notification service, but it’s not a good transactional or marketing email service. You really should not use SNS for that purpose. You can use SES (Simple Email Service) or, better yet, one of many third-party services that do an amazing job of sending transactional and marketing emails. SNS email messages would be a good fit for your DevOps team when something goes wrong with your EC2 instances or if you exceed service limits in AWS. It’s a bad tool for sending email messages to your CEO. Messages are simple text strings, not HTML, and won’t end up looking pretty.

Posted 24 May 2018

In the last entry in the series, we looked at how you connect to AWS via the AWS Java SDK from your CFML code. That’s the route you need to go if you want to work with AWS services from CFML — with one notable exception: S3, or Simple Storage Service.

Posted 21 May 2018

In order to access Amazon Web Services from within CFML applications, you’re going to need to use the AWS Java SDK CFML runs on top of the JRE, so we can tap into the vast array of Java SDKs that companies make available to Java developers.

Posted 4 May 2018

I’ve spent a lot of time in the past few years speaking at conferences about using Amazon Web Services from within CFML applications. I’ve covered many services and how to take advantage of them using the AWS Java SDK. If you haven’t attended one of my conference sessions, you likely haven’t seen how this works. This series of blog posts aims to provide a basic understanding of both how the tools in AWS work, and how to utilize them from within CFML.

Posted 29 April 2018

In its second year as a standalone conference, Into the Box more than doubled in physical attendees and added a new streaming option. The growth in the conference reflects not only on the high quality of presentations at the conference, but also on the hard work that the entire Ortus Solutions team puts into the conference.

Posted 24 July 2017

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.

Posted 22 June 2017

I always enjoy the UBTech conference. It’s an interesting mix of instructional technologists, faculty, administrative deans, and senior IT staff. The sessions are diverse as well, and I always learn quite a bit.

Posted 28 April 2017

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.

Posted 28 March 2017

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!

Posted 13 October 2016

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.

Posted 21 September 2016

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.”

Posted 16 June 2016

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.

Posted 18 May 2016

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!”

Posted 2 February 2016

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.

Posted 12 November 2015

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.

Posted 1 November 2015

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.

Posted 18 May 2015

First let me thank everyone who came to my session at dev.Objective() on “Node without Servers: Event-Driven Computing with AWS Lambda.” A lot of really great questions were asked and I had (another) great experience presenting at the conference.

Posted 14 April 2015

I’m very lucky to be speaking at dev.Objective() again this year. It’s an awesome conference, especially as it has evolved from cf.Objective() into something more broadly appealing to Web application development professionals while still retaining a lot of its ColdFusion roots.

Posted 29 December 2014

cf.Objective() has long been a great ColdFusion conference, and one of my personal favorite speaking engagements. The organizers of cf.Objective() changed the conference name to dev.Objective() this year to better match the nature of talks given at the conference and to target a wider audience for the great content presented there.

Posted 15 August 2014

I’m really honored to be speaking at this year’s NCDevCon. This will be my fourth year in a row as a speaker at the conference, and I’m excited to be returning to Raleigh for what I expect to be another great conference.

Posted 24 June 2014

I was asked to speak again this year at UBTech. It’s an interesting educational technology conference with a pretty diverse audience of faculty, instructional staff and senior-level administrators. I always get a lot out of the conference, and this year was no different.

Posted 2 June 2014

Now that ColdFusion Builder 3 is out, I thought it would be a good time to remind people of the very useful Outline view. The Outline view shows you the structure of your .cfc or .cfm file. Ray Camden has a video from the first version of ColdFusion Builder which explains the view in more depth. I really only use it on CFCs, as there are simply too many tags — and a mixture of CF tags and HTML tags (sorry, that’s how it is with CF) — in .cfm files.

Posted 29 April 2014

Adobe today released new versions of both the ColdFusion server (v11) and the ColdFusion Builder IDE (v3). There’s lots of new features in both, but I wanted to take the time to point out my two favorites:

Posted 28 March 2014

I’ve been lucky to have been asked to speak twice about promises and deferreds in jQuery at two conferences in the past year (NCDevCon and jQuery San Diego). Just before I was to give my talk at jQuery San Diego, the authors of Learning jQuery Deferreds, Terry Jones and Nicholas Tollervey, got in touch with me to see if I’d like a copy of their book. The book had been published just before the conference, so the timing was great.

Posted 13 February 2014

I want to offer my deepest gratitude to the entire jQuery San Diego team for inviting me to speak at such an awesome conference. There are a lot of incredibly smart people speaking and attending the conference, which made my impostor syndrome quite acute, but I was very proud to have been given an opportunity to present.

Posted 7 February 2014

With the rise of ECMAScript 6, tools like WebRTC, the Web Audio API, and HTML5 and CSS3 in general, we’re seeing fewer and fewer Flash applications in the wild. My team, like many, still have a few out there, mostly revolving around real-time communications because WebRTC is limited to newer browsers (no Mobile Safari, sigh), and polyfills aren’t always the real thing.

Posted 2 January 2014

I’m really excited that I have been asked to speak at this year’s main US jQuery conference in San Diego. This is the first time I’ve been asked to speak at a non-education, non-ColdFusion related technology conference, so I feel like it’s a big step forward for me. I’ll be speaking at a conference with some pretty awesome JavaScript hackers, and hope that I can meet the expectations of the audience with all those smart people around!

Posted 27 October 2013

You don’t have to look much further than the relevant tweets and blog posts to know that the first official CF Summit was a great success. It was awesome to be a part of this inaugural event, and I certainly hope that I get the opportunity to give a presentation next year.

Posted 7 October 2013

I’ve been using ColdFusion for years, but finally got around to setting up my Mac OS Terminal so that I could start and stop the ColdFusion 10 application server from anywhere in my Terminal, not just when I’m in the /ColdFusion10/cfusion/bin directory. This has become a common task with the removal of the simple ColdFusion application manager that existed prior to ColdFusion 10.

Posted 23 September 2013

NCDevCon continues to be one of the best conferences for web developers that I’ve had the privilege of both speaking at and attending. The speakers are excellent, the location great, and the price is incredibly low compared to similar conferences. I look forward to going again next year (and hopefully speaking too!).

Posted 9 September 2013

NCDevCon has to be one of the best bargains around when it comes to technology conferences. Not only does the conference have a great lineup of very good, very knowledgeable speakers on all things Web — JavaScript, mobile, design, devOps and workflow — it’s also super cheap. This year it’s $200 for the weekend conference. It’s also located in Raleigh, NC, which is a very affordable travel destination and near to one of my favorite BBQ places in the US: Allen & Sons.

Posted 30 July 2013

ColdFusion 10 includes a lot of security-related additions, including (finally!) built-in functions to generate and validate tokens to help prevent cross-site request forgery (CSRF) attacks. The two functions that work in parallel to deal with these kind of attacks are:

Posted 4 June 2013

As much as I love giving talks on Web development at conferences like cf.Objective() and NCDevCon, I also talk at numerous educational technology conferences throughout the year. I’ve been asked to speak at the always-interesting UBTech 2013 conference this year — and not to speak just once, but on two different topics!

Posted 17 May 2013

The organizers of this year’s cf.Objective() had the brilliant idea of setting up a shared Dropbox folder for the slides, code, and supporting materials from all sessions at the conference. I’ve posted a PDF of my slides from my session, “Making Your ColdFusion Apps Highly Available,” to this Dropbox folder. The PDF includes links to a lot of the tools, services, and articles that I referenced in my talk.

Posted 22 April 2013

This is probably obvious to anyone who has worked with Amazon CloudFront for some time, but I spent the last day or so banging my head against the proverbial wall when trying to make dynamic requests to the CloudFront CDN.

Posted 25 March 2013

I’ve taken the code I wrote for my previous two posts on creating signed URLs for protected content in Amazon CloudFront in ColdFusion and dynamically changing the file names of the files you serve from CloudFront and put it all in a little CFC which you may find useful if you’re doing either of these two tasks.

Posted 1 March 2013

There are a lot of use cases which require you to store customer-uploaded files with a system-generated file name instead of the original file name that the file had when the customer uploaded the file. You may want to ensure that every customer-uploaded file has a unique file name. You may want to provide a random file name so that someone poking through a server directory or Amazon S3 bucket doesn’t see file names like “income_taxes_jill_smith.pdf” You may have a specific file-naming convention that’s used for storing files in multiple hierarchies in your application. Whatever the reason, you also often need to change the name of the file when it’s requested by the customer after the initial upload. Jill Smith will want her file with the original name, and not “ks8pqz0hs7.pdf”

Posted 11 February 2013

My team is in the process of shifting all of our online course content from being delivered in a Flash-based format to delivery in a video-based format. At the same time, we’re trying to figure out ways of improving delivery of this content to our global audience. We’ve got students all over the world, and in some fairly low-resource areas (where they have Internet access from 3-5pm on Tuesdays and Fridays, for example). One of the strategies we’re going to employ is distribution of our online course content via a CDN. Although we’ve used Akamai as a CDN in the past, we’re going with Amazon S3 and CloudFront because of cost and integration benefits.

Posted 11 January 2013

I’m honored to have been selected to speak at this year’s cf.Objective() conference. I got the opportunity to speak for the first time at cf.Objective() last year, and this year, the good people on the content selection committee asked if I’d do a deep dive on my proposed topic: Making Your ColdFusion Apps Highly Available.

Posted 8 November 2012

Some of the smartest people in the ColdFusion community have put together a great getting started guide for learning ColdFusion: Learn CF In a Week. This is a great, free resource to anyone who wants to pick up ColdFusion quickly. Instead of buying a book or purchasing training videos about getting started with ColdFusion, there’s this free, in-depth resource (that’s not to say that the CF Web Application Construction Kit series of books shouldn’t be on every CF developer’s bookshelf, because they should be!).

Posted 30 September 2012

Attached to this post are my slides from my presentation at NCDevCon 2012: Making Your ColdFusion Apps Highly Available. While I do talk a bit about ColdFusion code changes that are necessitated by moving from a single server to a cluster, all of the content applies to making any web application highly available, no matter if it’s written in ColdFusion, PHP, or Ruby. In future iterations, I suppose I should rename the talk to “Making Your Web Apps Highly Available.”

Posted 12 September 2012

As my primary work revolves around online education and using technology to create an excellent learner experience, part of my job is to keep on top of many of the learning platforms available. Coursera has been making a big splash of late, and I’ve taken a number of courses on the platform. Lore has been gathering a large amount of buzz, especially as a replacement for more traditional learning management systems (and not a system for teaching at massive scale, like Coursera).

Posted 31 July 2012

I’m really excited that the team behind NCDevCon 2012 has selected me to speak at this year’s conference. I was really impressed by last year’s conference (my first) and I really wanted to speak again this year.

Posted 23 May 2012

As a manager and Web developer, it’s my responsibility to make sure that both my team and I stay up to date with as much in the ever-changing Web application development landscape as we can. If you’re in software development, and Web application development in particular, and you’re not learning about new technologies, frameworks, and approaches to building your Web apps, you’re in the wrong business. Seriously. Get out. You’re doing yourself and your clients a serious disservice.

Posted 20 May 2012

Attached to this post is a PDF of the slides used in the talk I gave yesterday at CFObjective: “Making High Performance Caching Easy with ColdFusion.” CFObjective is a great conference (and not only about ColdFusion, by any stretch of the imagination), and one that I felt honored to have been able to speak at. I thought the presentation went well, though I did seem to be talking a bit faster than I usually do (and I’m a fast talker).

Posted 15 May 2012

Now that ColdFusion 10 has been officially released, I’d like to take some time to talk about some of the new features that I find to be real productivity enhancers and features that open new possibilities for work. I’m not going to discuss how the features work (i.e.; the code) because there are a lot of great resources one Google search away that show you how to do that (and there’s the always-underutilized ColdFusion docs!). If you just want to see the list of new functions in ColdFusion 10, you can also check out this page from the ColdFusion 10 docs.

Posted 9 February 2012

Posted 28 October 2011

I’ve had the privilege of speaking at technical and educational conferences for more than a decade. At the turn of the century (it really wasn’t that long ago), I was speaking on using streaming media in higher education, and even did a session on the first release of the Flash Media Server at conferences like Syllabus (back before it became the Campus Technology conference).

Posted 18 September 2011

For those of you who wanted my slides from my presentation at NCDevCon — Improving Application Performance with 3 Simple Functions — they’re attached to this post. As usual, I learned a lot about what would work and would not work while practicing this presentation, and was making changes just an hour before showtime. I received some good feedback from a couple of people in the session as well, and wanted to extend my thanks to everyone who attended the session.

Posted 7 September 2011

A few months back, we moved all of our user-generated content to a file share, and had to rewrite some of our code to use the new UNC path to the files. As with most things ColdFusion, it’s best to let the application server do the hard work for you, so instead of writing out the full UNC path to files in a <cffile> tag, you should use the expandPath() function instead. This is a really good idea if, at some imaginary point in the future, the path to your file share changes. (File shares never change locations in a network, right?)

Posted 4 August 2011

Although I’ve spoken at a number of conferences in the past decade, and at three educational technology conferences in the last year, I’ve never spoken at a ColdFusion-specific conference. That’s about to change. Both the NCDevCon team and Ray Camden and the team behind the CF Unconference at MAX have given me the opportunity to finally do so.

Posted 15 July 2011

I’ve used Prototype for a very long time as the JavaScript framework for many of our Web applicaitons, but we’ve recently been moving towards using jQuery as it has a much more vibrant developer ecosystem. In a recent project, I wanted to provide customers with the ability to type someone’s name into a text field, and use the jQuery UI autosuggst widget to return search results rather than having customers search through a list of 30,000+ customer names. The jQuery UI documentation made it easy to get the autosuggest widget set up. What I needed to do, however, was figure out how to pass the customerID value for the selected customer from the autosuggest widget to my form because when the form was submitted, I wanted to work with the customerID value rather than a string composed of a first name and last name.

Posted 7 March 2011

One of the really great new features of ColdFusion Builder 2 is the ability to create brand-new views in Eclipse from a CFBuilder 2 extension. This opens up a whole host of possibilities for developing with ColdFusion.

Posted 6 December 2010

I’m currently reading “Even Faster Web Sites: Performance Best Practices for Web Developers” and one of the topics that is covered in the book is JavaScript performance. There are a lot of performance tips and tricks that can be applied when building JavaScript applications. As most developers know, loops are one area where performance tends to slow down and that are usually ripe for optimization.

Posted 27 October 2010

One of the great parts of the annual Adobe MAX conference has been the Unconferences at MAX, and the CF Unconference, organized by the ever-dedicated Ray Camden. One of today’s sessions at the CF Unconference was given by Mike Brunt (and one of his colleagues, whose name I completely missed) on scaling ColdFusion 9 applications and, more specifically, how to set up ehcache for scaling. ehcache is built in to ColdFusion 9 and forms the heart of the new, fast, super-easy caching in ColdFusion 9.

Posted 2 September 2010

Each new version of ColdFusion (be it from Adobe, Railo or OpenBD) brings with it a raft of new features. As a busy developer just trying to get things done, it’s easy to skip over most of the new features and use what you’ve always used. I’d like to share a brief story about the <cfcache> tag in Adobe ColdFusion 9 and why it’s the one tag in CF9 that you should start using now.

Posted 16 August 2010

Charlie Arehart is an indefatigable contributor to the ColdFusion community. He always manages to dig through the dark and unexplored corners of CF and CF-related products, and comes up with some excellent gems and insights along the way.

Posted 16 August 2010

Google’s App Inventor is a great idea. Empowering consumers to create is always a good thing. Visual Basic was the key to Microsoft’s long-time success. Map making tools are the reason why Warcraft III and Starcraft still sell on retail shelves, more than a decade after their release. iMovie, Windows Movie Maker and its counterparts have helped make YouTube the site for almost every Web meme of the last five years.

Posted 30 December 2009

Posted 30 November 2009

It looks like I’m going to spend another Monday morning writing about Mach-II modules. In this entry in the series, I’m going to look at how your CFML-based views are affected by the Mach-II module structure.

Posted 23 November 2009

Ah, ColdSpring. In my opinion, you’re the bees’ knees. You’re what makes managing object dependencies a breeze. You simplify and enable the development of object-oriented ColdFusion apps so much that you’re core to most large-scale ColdFusion applications written in the last couple of years. The teams behind Mach-II, Model-Glue and ColdBox like you so much that they made you a key player in their framework stacks. I’m not going to sell you on the virtues of ColdSpring any longer, so if you’re not using it already, start please.

Posted 16 November 2009

In this installment of my mini-series on modules in Mach-II, I’m going to talk about the Mach-II XML config file for your module, how it relates to the parent (main application) Mach-II XML config file, and try to offer some tips on what should and should not go in your module’s Mach-II XML config file.

Posted 15 October 2009

I’ve been going through Daniel Short’s excellent new training module, "ColdFusion 9 New Features" over on Lynda.com. I really like the depth and breadth of content that’s available on Lynda.com (and it’s not expensive), and given that Adobe’s on in-person training for CF9 won’t be available for a while yet, it’s great to see them rolling out CF9 training at the same time as the CF9 release.

Posted 15 October 2009

Like many people who develop Web applications, I don’t have a formal background in computer science. I’ve taught myself most of what I know, and I’ve been very fortunate to be the recipient of a lot of great knowledge from people much, much smarter than I. One of the areas in which my skills can be improved is with utilizing the full power of SQL. I’m no SQL expert, and while I’ve certainly read up on stored procedures, the variances of T-SQL (as I use MS SQL Server at work), and fun stuff like cursors (and how you should use them judiciously, at best), most of my ColdFusion queries revolve around four simple SQL statements: SELECT, INSERT, UPDATE and DELETE.

Posted 17 September 2009

One of the things that I really like about using Mach-II, my MVC framework of choice for developing ColdFusion applications, is the level of support and interaction with the community that the core team behind the framework provides. I know it’s a lot of work and a lot of time for them (and time is the one thing that none of us ever have enough of), and I’m always impressed with how they go out of their way to help boneheads like me in our hour of need.

Posted 2 May 2009

I think that Blizzard has taken a new approach to game design with the recent development and release of the Ulduar dungeon in World of Warcraft. This is pure speculation on my part, and other MMORPGs may already be employing such measures, but if it is, I’m not aware.