6. Edgardo Cabezas
El Salvador Jorge Reyes
SwitzerlandPaulina Lainez
USA
ITB Committee
Gavin Pickin
USA
Eric Peterson
USA
Brad Wood
USA
Sonia Menendez
El Salvador
Esme Acevedo
USA
Jon Clausen
USA
8. The Modernize Or Die!™
Virtual Happy Hour
C O N F E R E N C E E D I T I O N
MODERNIZEORDIEMODERNIZEORDIE
S O A P B O X E D I T I O N
MODERNIZEORDIE
C F M L N E W S E D I T I O N
Auditorium @ end
Social Distancing Included!
18. 68
Episodes
Modernize Or Die!™
C O N F E R E N C E E D I T I O N
MODERNIZEORDIEMODERNIZEORDIE
S O A P B O X E D I T I O N
MODERNIZEORDIE
C F M L N E W S E D I T I O N
12,000
Views
328
Subscribers
20. Michael Born
Senior Dev
NewYork
Grant Copley
Senior Dev
Tennessee
Ortus USA Expansion
Paulina Lainez
PR Specialist
Maryland
Revolutionaries
needed!
We are hiring
21. • Product Dev
• Open Source Dev
• Global Consulting
• Web Support
• *Image Editing
Sonia Abilio Jaime
Davis Edgardo Steph
Miguel
El Salvador
22. • 1st in LATAM
• 100+ Attendees
• 90% New to CFML
• Gov Support
27. More is coming…
“IF YOU WANT SOMETHING NEW, YOU HAVE TO STOP DOING
SOMETHING OLD” - PETER DRUCKER
28. ColdBox Master Class
Online Course
Nolan Erck
Trainer
• RecordedTraining
• 9 Sections
• 44Videos
• 5 hours
• Coming this May!
Luis Majano
Writer
More Courses Coming Soon…
29.
30. State of the box
✴ 14 Years this June
✴ 4.x Series Started in 2015
✴ 5.x Series Started in 2018
✴ 13 Releases
✴ 6.x Series Starts Now!
✴ 3rd Major Architectural Shift
31. Growing ecosystem
✴ High Spike in New Entries
✴ 1060 Closed Pull Requests
✴ SlackTeam Memberships
✴ 372 to 560 (51%)
✴ #box-products members
✴ 568 to 711 (25.1%)
ForgeBox Modules
0
125
250
375
500
2011 2012 2013 2014 2015 2016 2017 2018 2019 2020
39. cbFutures
CompletableFutures for CFML
Async Pipelines
Expressive DSL for async/parallel computations
For all CFML, not only ColdBox
Matches almost 90% of the Java API++
Full session on this topic
40. • Too over-simplistic
• Threads limited
• Cannot be completed manually
• No concept of a completion stage pipeline
• No control of what executor runs the task
• No way to trap the exceptions and recover
• No way to do parallel computations
• No way to get a result from a computation, except by
using a shared scope
• Using a shared scope causes concurrency
• You must manually track, name and pull information
from the threads
Why not cfthread?
<cfthread>
cbFutures
41. • Backed by java.util.concurrent.Future
• Simplistic error handler
• No way to recover
• No way to continue executing pipelines
• No way to choose/reuse the executor
• No way to choose/reuse the executor to run the sub-sequent then() operations.
• Lucee actually creates a new singleThreadExecutor for EVERY then() operation.
• No way to operate on multiple futures at once
• No way to have one future win against multiple future operations
• No way to combine futures
• No way to compose futures
• No ability to schedule tasks
• No ability to run period tasks
• No ability to delay the execution of tasks
• Only works with closures, does not work on actually calling component methods
Why not CF runAsync()
runAsync()cbFutures
61. CommandBox History
• 6Years old
• 25Total Releases
• PullTotal requests: 448
• CommandBox Core 230
• CommandBox Modules: 79
• Docs: 139
• 187Tickets closed this year
• 42 Pull Requests this year
• Seeing more and more
community contributions!
63. CommandBox Servers are
powering the CF World
• 63,883 Adobe CF installs (up from 37k last year!)
• 78,320 Lucee installs (up from 37k last year!)
0
40000
80000
120000
160000
2019 2020
Adobe Lucee
64. CommandBox Servers are
powering the CF World
• Stats from the SOTCFU 2020 survey
• 28% of local development servers run on CommandBox
• 49% of Docker CF deploys on CommandBox
• There are more people using CommandBox-based images
than the "official" Adobe and Lucee images
• 7% of production CF deploys on CommandBox
65. CommandBox 4.7.0 Release
• “box:”WIreBox injection namespace
• Improved env var support for native binaries
• JSON Schema for box.json
• Bug fixes
66. CommandBox 4.8.0 Release
• cached:http installation endpoint
• Enhanced tab complete for native binaries and
quoted strings
• Support for “cd -”
• Bug fixes
67. CommandBox 5.0.0 Release
• Major Release
• Java 11+ support
• Lucee 5.3 and JBoss Undertow 2.x
• Git access token support
• Lucee Extension management
• Faster server startup scripts for warming up Docker
containers
• File globbing improvements
• New server tray menu options
• New undertow configuration options
68. CommandBox 5 - Library Updates
• WireBox 5.6.2
• JLine 3.13.0
• Runwar 4.0.3 (major bump from 3.x)
• JBoss Undertow 2.0.27.Final (major bump from 1.x)
• JGit 5.5.1.201910021850-r
• Lucee 5.3.4.77("major" bump from 5.2)
• AdoptOpenJDK jdk-11.0.6+10 (In the JRE-included
download) (major bump from 8.x)
71. CommandBox 5
Better CLI Tooling
dir **.cfc,*.cfm
dir paths=modules excludePath=**.md --recurse
dir paths=samples sort="directory asc, name desc"
cat names.txt | unique
cat names.txt | unique --count
cat names.txt | sort
cat names.txt | sort type=text
cat names.txt | sort type=numeric
cat names.txt | sort direction=desc
dir **.cfc | grep --count
dir | grep .*.md --count
72. CommandBox 5
FusionReactor for the CLI
Use your FusionReactor license to monitorTask Runners and
custom commands from the CLI!
73. CommandBox 5
FusionReactor for the CLI
Use your FusionReactor license to monitorTask Runners and
custom commands from the CLI!
74. Changing the way developers see production
Start for free at https://nerd.vision/
From the makers of
SupportsACF
(LuceeSoon!)
75. CommandBox 5
Lucee Light & Snapshot servers
• All snapshot, alpha, beta, snapshot, and final Lucee builds are on
Forgebox for you to start servers with
• Lucee and Lucee Light engines are now available
• Publishing process is fully automated so the latest builds are always
available to you
server start cfengine=lucee@5.3.4-SNAPSHOT+84
server start cfengine=lucee@be
server start cfengine=lucee-light
server start cfengine=lucee-light@5.3.4.77
76. CommandBox Next
CommandBox 5.1 already in development
• Ability to run pure HTML server (No Node!)
• ColdBox app templates updated for ColdBox 6
• Lucee Updates
• Arbitrary actions from server menu
• CommandBoxThin binary
• CommandBox Light
77. CommandBox Into The Future
“IF YOU WANT SOMETHING NEW, YOU HAVE TO STOP DOING
SOMETHING OLD” - PETER DRUCKER
• Web Socket features
• CommandBox Daemon mode
• Secure-by-default server lockdowns
• Task Runner improvements
80. ✴ Very Busy (12 Months)
✴ 5 ForgeBoxVersion Releases
✴ 115 New Users
✴ 152 New Packages
✴ 2,915 NewVersions
✴ 16 Million Requests
State of FORGEBOX
84. New User Dashboards
VersionTab Updates
DependencyViewer
Badges
Minor Fixes
Responsive Design
Stable version
determinations
DependencyViewer
Lucee Extension
Minor Fixes
cbORM 2
Badge Updates
Install strings
Minor Fixes
4.7 4.8 4.9
New Markdown Engine
Sentry Reporting
Minor Fixes
4.10
Version retrospective
86. Package storage
✴ “location” = “forgeboxStorage”
✴ForgeBox stores your software
✴Versioning Included
✴Private and Secure Storage
✴Worldwide CDN
✴US and EU Mirrors
✴FREE for all open source packages
90. FORGEBOX Community edition is the free edition of FORGEBOX that
helps foment the ColdFusion (CFML) community.
FREE
Forgebox Community
✓ Unlimited public packages
✓ Unlimited collaborators on public packages
✓ Collaborators for public packages
✓ 10GB of storage for your packages
✓ Community Support
91. FORGEBOX Solo plan is directed to the solo developer in need of private
packages and extended storage. It includes all the features from community
plus the following features:
✓ Unlimited private packages
✓ No collaborators on private packages
✓ 25GB of storage for all packages
✓ Community Support
Forgebox Solo
$4.99
Month
92. FORGEBOX Pro account is directed to the software professional or small
business in need of many packages and collaborations. It includes all the
features of community plus the following features:
✓ Unlimited private packages
✓ Up to 10 collaborators on private packages
✓ Collaborator based permissions
(read, publish)
✓ 50GB of storage for all packages
✓ Basic Support (Email+Slack)
Forgebox Pro
$9.99
Month
94. FORGEBOX Business accounts are directed towards organizations and
teams so they can collaborate and support their software building needs. It
includes all the features of PRO plus the following features:
Forgebox BUSINESS
Coming This Summer
✓ Unlimited collaborators
✓ Unlimited organizations and teams
✓ Organization role based security for
members
✓ Unlimited public/private packages
under the organization slug
✓ Team-based permissions (read, publish)
✓ 100GB of storage for all packages
✓ Premium Support (Slack + IssueTracking)
$7.99
Month / User
95.
96. FORGEBOX Enterprise is more than a plan but a solution for organizations that want
exclusivity and isolated security. Each enterprise is a standalone database + containers
deployed for your organization. It includes everything in the Business plans plus:
✓ Unlimited users
✓ Custom named integration with
CommandBox CLI
✓ Fine grained User Access Control, Roles
and Permissions.
✓ Package type management
✓ Scalable Artifact Storage
✓ Up to 250GB of storage included
✓ Software firewall included
✓ Artifact CDN Included
✓ Enterprise Support, SLAs and mentorship
✓ Containerized Environment with
redundancy and scalability
✓ One time setup fee of $199
Forgebox ENTERPRISE
$299
Month
97. We are not done yet!
What’s coming…
“IF YOU WANT SOMETHING NEW, YOU HAVE TO STOP DOING
SOMETHING OLD” - PETER DRUCKER
98. Q2
Apr - Jun
• Organizations
• cbSecurity 2
• Multi-token
• ColdBox 6
• API v2
• Swagger Docs
Q3
Jul - Sep
• Analytics
• Audit Reports
• Teams
• TestBox Reports
• Code Quality
• PackageTransfers
Q4
Oct - Dec
• USA
Marketplace
• Collaboration
Managers
• Webhooks
• Elastic Search
2021
• EU
Marketplace
• CLI Purchases
• Package Licensing
Forgebox Roadmap
99.
100. State of the spec
✴ 7Years in December
✴ De-facto standard for CFMLTesting
✴ 336,625 Installs
✴ 2.x Series started in 2014
✴ 3.x Series started in 2019
✴ 4.x Series started last week!
101. • UI Updates for all
Reporters
• StandaloneTest
Visualizer
• Code Coverage
• cbStreams at Core
• Mocking Enhancements
• Engine Updates and
Deprecations
• Functional before, after
and around
• Null Representations
• Mocking Method
Performance
• Eager failures
• Color Blindness
Support
• Junit enhancements
• Skipping for BDD
• Lucee compats
• invoke() usage
• Performance
• Rewrite for interception
points for concurrency
• ORM Mocking
3.0 3.1 3.2
Retrospective