Need a presenter for your user group or conference? Drop me a line and let's schedule something! --Nolan
- Runnin' In The Streets! CommandBox Task Runners For The Real World
Recently CommandBox added a new feature called Task Runners to let you “run ColdFusion code”. That doesn’t sound exciting but it’s really quite useful. Now we can use CommandBox and CFML to replace our Ant scripts, Gulp tasks, CRON jobs, shell scripts, and so on! With Task Runners, not only can your entire application be CFML but the build scripts, nightly batch processes, shell scripts and tons more can also be written and managed in CFML. Goodbye, super cryptic Perl file that we’ve blindly been running for 20 years! Let’s replace it all with CFML!
- I'm Still Scared of Aspect Oriented Programming!
So you’ve figured out what Model View Controllers do, and even wrapped your head around using Dependency Injection for bean management. Excellent! But that pesky Aspect Oriented Programming (AOP) layer is still a complete mystery! It’s not that bad, I promise. And in this talk we’ll go over the basics of what AOP does, plus show you some ways to implement it in your applications. There are several AOP libraries available in CFML -- you can use any of them in your existing applications, without needing to do a complete rewrite of your code. Let’s learn how!
- Testing My Non-ColdBox Site With TestBox
Ever had this thought? “Sure, TestBox looks great, but I built a bunch of web apps that aren’t based on ColdBox. How do I test those?”
Answer: The same way! TestBox is an entirely stand-alone product! It in no way requires that your apps be ColdBox based — TestBox really is a tool available for all CFML developers!
We all know testing is important. We all know we need to do it. Do we all know how to use TestBox on our non-ColdBox web apps? Let’s learn how!
- CommandBox vs Node.js
- Building Your First Package on ForgeBox
I know what you’re thinking: “Hey I’ve got this open source idea I want to share but it’s not a full blown ColdBox app, it’s just a library, or handful of useful functions. Or some other thing I wrote ages ago.”
The truth is you only need to add a tiny bit of machinery around most non-ColdBox code to make it shareable via ForgeBox! We can take collections of functions, or legacy CFincludes or custom tags and other non-ColdBox things and make them usable via ForgeBox without much hassle. Let’s learn how!
- Crash Course in CSS Grid + Flexbox
CSS Grid and Flexbox are two great CSS tools that solve a lot of layout problems for us. All the grid layout work we’ve done via Bootstrap can now be done with just a handful of CSS properties that are already baked into modern web browsers. If you’ve ever used Bootstrap just to get an easy responsive layout working (and we have all done this!) you know that Bootstrap works, but this can add a lot of bloat to the application, especially if you’re not using Bootstrap for other features as well. Instead, let’s learn CSS Grid and Flexbox, get the same layout benefits but without needing to install yet another CSS framework.
- What's New in Bootstrap 4?
Bootstrap has evolved tons! Version 4.2.1 is out now with new classes for grid layout options, accessibility, spinners, iOS style switches, font utilities and tons more. If you’re using Bootstrap for just 3-column layouts you’re missing out! Come learn about other features in the latest version and ways it can improve your app!
- Crash Course in Angular
Angular used to be AngularJS. Then it became Angular 2. Then they skipped version 3. Then 4, 5 and 6 came out in rapid fire succession. Where do you begin?! We’ll look at how to start building an Angular project from scratch. Beginning with some basic Node commands, we’ll scaffold out an Angular project and look at how the project is organized. Next, we’ll walk thru some basics of TypeScript and MVVM basics. We’ll end with building your first Angular project, some tips on debugging and places to look up more information.
- Real World Scenarios For Modern CFML
The recent versions of ColdFusion have added many new language features. We’ve now got closures, functional programming constructs, QueryExecute, the safe navigation operator, the elvis operator, and even more coming in future releases. For people new to functional programming or object oriented programming, it can be hard to see where these features can be beneficial. Let’s fix that!
- Connecting Vue.js and CFML
- Connecting AngularJS and ColdFusion
(This presentation can be done as a 1-day hands-on workshop, as a regular 1-hour session, or as a more involved 2-hour deep dive. Given the major differences in Angular 1.x and the 2+ series, there are 2 variations of this talk for each type of Angular code available. Either version can be given, whichever the audience prefers.)
- Crash Course in jQuery
- Even More HTML5
HTML5 has been finalized but the spec is so big, browser makers have been slow to implement all the features. Still, several new (and useful) things have been making their way into the latest builds of FireFox and Chrome (and those other guys too) that are worth noting. Maybe you can stop relying on so many third-part libraries now. Maybe things that required hacks in CSS before can now be done easily. Let's find out!
- Mura ORM + Feed API = Awesomeness
Two of the most powerful features in Mura 7 are the improvements made to Mura ORM and the Feed API. Mura ORM takes care of your CRUD-type operations, plus manages changes to the database tables as you’re developing. The Feed API can be used to write advanced filters, reports, and other queries. Between these 2 features you almost never have to write a SQL statement again! We’ll start by looking at some basic examples of how to use ORM and Feed API, and we’ll also look at some real-world examples of using both of these in your custom Mura development.
- Infinite Scrolling With Mura 7
Pagination is boring! Let’s add infinite scrolling to our site ala Facebook and Twitter! Mura 7 added several new features that can be combined to do just that. In this session we’ll look at some functions in the new m() scope in Mura 7, new functionality in Display Objects, and how to manipulate them on the client-side at run-time. Then we’ll combine all of this together to show you how to build Infinite Scrolling into your own Mura website.
- MVC With and Without a Framework
So you've looked at CF Components, and kind of understand the basics of how they work. Everyone says "frameworks are the way to go", but there's still a big knowledge gap between those 2 points. As each framework has its own terminology, how do you know where verbiage for one begins and the other one ends? Is "Controller" a Model-Glue specific thing? What about a "Service Layer" or a "View"? There's very little documentation available about the "Model-View-Controller" pattern for ColdFusion, that's not specific to a CF framework...and that's often what causes the confusion for people newer to OO development. In this talk we will go over a basic application that's built using the Model-View-Controller design pattern, but does not use any specific framework to get there. We'll also show when using the MVC pattern by itself may be enough for your app, when going to a full fledged framework may be the better way go to, and how easy it is to do so. For maximum benefit, you should have an understanding of how the CFComponent tag works, and we'll take it from there.
- All About Application.CFC
Still using Application.CFM files? You might be losing out on some easy improvements to your application. Application.CFC takes what Application.CFM does and improves upon it greatly. Rather than having the entire file run on every page request (which can be really slow!), you can break the code up so only sections run the first time the app starts up, when a new user longs on, when a new page request starts, when an error is thrown, and much more. Though it’s a CFC file, you don’t even have to know object-oriented programming to take advantage of Application.CFC. In this talk we’ll take a look at a legacy application using Application.CFM and step thru moving the code to an Application.CFC file, discussing the benefits and best practices along the way.
- Modularity Shoot-Out: CFInclude vs CFModule vs Custom Tags vs CFFunction
Object Oriented Programming with CFComponents is definitely the direction most development is headed. But before jumping into OO territory, there is still a lot of modularity and code re-use that can be done with just a few tags - CFInclude, CFModule, Custom Tags and CFFunction.
- Git Source Control: for the Rest of Us
What about those designers/JS/CSS folks that WEREN'T using Subversion, and don't CARE about how under the hood Git uses a different type of pointer file storage thing, blah blah blah? There's a whole new wave of developers/designers that could stand to have an intro to Git that matches their workflow more concisely.
- Crash Course in Ionic + AngularJS