Episode 243 | October 21st, 2025
Hello and welcome to the Modernize or Die Podcast.
Glad to have you with us today.
My name is Eric Peterson and I'm joined by Jacob Beers.
How's it going, Jacob?
Doing good, how are you?
I'm doing pretty good.
we got a good show for you today and let's jump into some Ortus news.
We got some big releases that came out in the last couple of weeks.
The first one is ColdBox 8 or as our blog post says, ColdBox the Ocho is here.
The Ocho.
ColdBox 8 is big.
Lots of changes in this one.
We are going to definitely send you to the blog post to read everything about it.
And then choose, you know, one, maybe two of our favorites here.
So, Jacob, how about you?
What is your favorite feature that came out of ColdBox 8?
My favorite feature is the new ColdBox template that we have available.
It's called the 'Modern Template' and it's got a lot of cool things in it.
My favorite part of the template is that there is a dev container configuration file
included.
So you can pull down the template and then immediately be running in a dev container.
It's pretty cool.
And for the uninitiated, like myself, a dev container would do what for you.
So a dev container configuration tells VS Code how to spin up uh like a container or a
Docker compose file.
But then VS Code actually connects to the container and you work inside of the container.
So it's pretty cool.
get the benefits of a container, but for actual development and replicating your
environment and stuff.
nice.
Well, I'm gonna cheat and take two I got an honorable mention which is a co-bots eight
runs on What I've affectionately dubbed BoxLang prime That prime.
BoxLang laying without the CFML compat .
We have a fun little graphic for it actually If you go check out the blog post so BoxLang
prime is where it's .
Very excited for that
to keep pushing forward BoxLang as the standard and kind of leave some of the old
idiosyncrasies we're all used to behind.
But my favorite has to be the virtual thread support that's coming in with newer versions
of Java.
Just I do a lot with async things in the background and virtual threads are just the cat's
meow for that.
So very excited to start making some executors that are based on that instead of platform
threads.
So there is a lot more for ColdBox 8.
We are just scratching the surface, including things like BoxLang Native with a BXColdBox
module.
Completely revamped ColdBox CLI, kind of was mentioned with the new templates.
There's another template, kind of a default BoxLang template that you can use.
AI First development with an MCP server integration.
Our error handler whoops got upgraded with some AI help as well.
So there's a ton.
You can check out the documentation, see what it will take to upgrade.
There are some deprecations that have been in the past that finally got dropped in this
version.
So definitely take a look at what changed and let us know how it goes for you.
All right, moving along, let's talk about SocketBox.
We've got a new blog post.
I know about it because I read
it. Hello,
WebSockets. So this is an introduction to what SocketBox is and how to uh use it in a
ColdFusion application or a BoxLang
application. And I've even included a little repo there that you can pull down and run the
install script and test out locally if you're not familiar with it or you just want to get
started really
Go check that out.
That's actually going to be part of a series.
We've got two or three more blog posts that will be coming out related to that that go
into things like security, how to structure your application, some cool recipes that you
could use in your own app.
So definitely get started with that first one and stay along for the ride.
Awesome.
I still need to jump into this.
mean, I've been in love with WebSocket since I first saw, think it was a JC's demo at one
of the, one of the ColdFusion conferences.
And then sad that I couldn't use it in Lucee as easily, I should say.
And then SocketBox is here and I really need to use it.
I think his last example used SocketBox.
I just haven't got to jump into it.
So.
Yeah.
Well, now's a good time because I've done some WebSocket work with Node.js in the past,
and I actually prefer SocketBox.
It was really, really easy to get set up.
And I've always had trouble with having multiple servers using WebSockets in the past, but
that problem is actually tackled head on by SocketBox.
So you just have to provide some configuration and all of your servers will work together
seamlessly.
That's awesome.
I need to get in on that.
All right, we have a ColdBox tips and tricks series that's been going on.
We got two and a half tips for you.
We got two tips.
One comes in two parts.
The first one, ironically, I was looking for this the other day.
So very glad to see this was, hey, what ColdBox version am I using?
So if you're in CommandBox you can do a package list and see it right there.
If you're inside ColdBox you can get the ColdBox setting version.
And if you're in a module, it's injected into the variable scope as ColdBox version.
Now, why do you need that?
Well, maybe your code needs to know I'm on eight, do something differently, maybe to help
you with debugging or in module development.
So there's a quick way to get the ColdBox version.
And the next two were about how to up your email game.
this time using a module using CB mail services.
So if you're out there using the CF mail tag, that's great, but you can give yourself some
more superpowers there using the CB mail services module to be able to send to different
locations, even the file system or just an array for testing, depending on your
environment or other configuration and sent to multiple different providers.
either sometimes using, you know, good old CFMail SMTP or using APIs that these service
providers set up like SendGrid.
So check out CBMail services and check out those two new tips in the ColdBox tips and
tricks series on the Ortus blog.
We wanna take a minute.
Excuse me.
We want to take a minute to thank our sponsor, Ortus Solutions.
We have many services and helps that we can help you with.
I want to point you to our blog where we have a few articles that might interest some of
you about scaling with DevOps, the hidden human factor in ColdBox fusion modernization,
and how on-demand DevOps prevents outages before they happen.
You can check out these case studies and articles.
and see how our team can help you in these and many more other services and situations.
Thank you, Ortus Solutions, for sponsoring this podcast.
All right, shall we jump into some BoxLang news?
Yes, we should.
All right, BoxLang 1.6 is out.
And there's lots of uh awesome stuff with this release, especially concerning performance.
So we've got some extreme performance optimizations, up to 65 % faster.
We've got some improved MCP dock integration, and then a new mini console framework with
enhanced Red Bull experience, which...
I haven't personally tried that out, but I've heard some good things about it.
So Eric, why don't you tell me what is.
Yeah.
I was gonna say I got to try the new rebel out a bit and yeah, it's just it's just
becoming a nicer rebel, right?
Like kind of reminds me a little bit of the BoxLang rebel.
So I mean it's it's nice when you need to jump in and be like, wait, does this work the
same way as I remember it?
So absolutely great.
I didn't I don't know what the mini console thing is, but that that excites me so.
Yep, it's a mystery.
day, but one day CommandBox running on BoxLang We're waiting for it.
Come on, Brad.
one day, that would be a great release.
you were asking about my favorite, uh, part of BoxLang.
mean, it's going to be boring, but it's gotta be the performance improvements.
So for any of you that were running BoxLang and the first betas, it was super exciting
because here's a new CF engine, but goodness, like I could send it at a test suite and
wait a minute for it to parse all the classes and get through.
Yeah.
Exactly.
Um, not quite that bad, but, um, I remember being able to cat the log out, you know, tell
the log and to see like, compile this class, compile this class, compile this class and
like, okay.
And now just today.
I spun up that new modern template with ColdBox 8 with BoxLang, started it up.
It's up in a second.
Like it's so uh impressive.
And I'm sure there's still more that we're going to be putting in there and getting
performance out of there.
So like it's just really awesome to watch and really great work from the whole team
working on that.
Yep, yep, absolutely.
Well, I'll share my favorite as well.
I think that's gonna be the VS code MCP integration.
And it's not just VS code, it's any editor that supports the model.
Luis has been going through all of our documentation and making it available as an MCP to
your favorite coding tool.
So actually, if you check out some of those blog posts, this is included in the Ocho
announcement as well as the BoxLang 1.6 announcement.
Those have links to documentation for different products like ColdBox or BoxLang or other
modules.
So if you're using those, definitely go attach that MCP to your editor.
and you'll get much better feedback from your AI helper assistant.
All right, so now you're going to get some questions from me because I use some AI on the
side, but I've not dived into it every time I have.
I've been kind of disappointed.
So when you say like hooking this up, so is this like a one time thing?
Like it's like an extension like to VS code?
Like what is installing this?
Get me.
Yeah, so it's actually really easy.
If you're in VS Code and you're looking at the extension panel thing, there's now a window
at the bottom that says MCP servers.
And you can run a CommandBox like add MCP using the CommandBox palette.
And you basically just paste a URL into VS Code when it asks you to configure your MCP.
And then
the AI will have tools made available to it that says like, I'm looking at BoxLang
documentation.
I am looking up stuff about the async scheduler.
So I'm gonna look at the documentation for async scheduler before I answer this user's
query.
And that's available on all of our docs that use Gitbook, which is basically all of them,
right?
Mm-hmm.
Yeah, I think so.
And it's free.
So doing this live, if I go right now to QB, do I have to turn it on or is it already on?
How do I do this?
I don't see it.
OK, now I got to go look at this after the pod.
Oh, there it is.
Connect to VS code QB.
Oh, my goodness.
Got to be honest, I don't think I've ever asked a question about QB, but it's still cool.
I need to do that.
The ones I don't use that often or don't write myself.
All right.
All right.
We'll see.
that because I ask AI questions about QB all the time and it does a great job.
good.
That's cool.
Okay.
that makes my next foray into using AI a little bit more useful.
um I think the last one I did, I tried to ask co-pilot on GitHub to, it was an upgrade.
It was upgraded to ColdBox eight.
That's what it was.
I'm like for hyper upgrade this to ColdBox eight.
Add this to the matrix, do this and it's just, I just made a mess and I'm like, maybe I'm
just bad at like telling AI what to do.
That must be it.
But I just closed their poll requests and went and did it myself.
Anyway.
All right.
Thanks for that overview.
Uh, we got a few modules to tell you about few new modules, which are, let's start with BX
charts.
So for anybody who used CF chart,
This is what you've been waiting for in BoxLang.
You can check it out right now.
This is one of our free modules.
And in addition, there is a website.
I had it and it's gone charts.boxlang.io where you can go right now and play around with
it and view examples for the charts and what you can do with it.
Really neat.
It looks like you would expect if you were using CF chart.
You can get started with that.
Right away.
Additionally, the BX LDAP module has been created as well for interacting with any LDAP
directory.
BX LDAP is a premium module.
It's available exclusively to our BoxLang Plus and Plus Plus subscribers.
And it is a great drop-in replacement for any of the CF LDAP queries that you may have
written before.
So that also leads perfectly into a reminder that
BoxLang right now has what we like to call our pioneer program.
If you want to get in here on the ground floor, access to all of these enterprise modules,
get a team behind your conversion to BoxLang and get a nice discount on your licensing
plans, get ahold of us.
Tell us about you being interested in becoming a BoxLang pioneer and let's get you hooked
up.
Um, I also would like to point out that if you, whatever reason, are sitting here and
like, can't believe they made LDAP a paid module.
Like you can always go build your own and you can use your own Java libraries and no one's
stopping you.
it's just, if you don't want to do all of that work and you want to appreciate that we did
it for you, come grab a BoxLang plus subscription.
I bet it's cheaper than the time you're going to spend.
Very true.
All right, well, moving on to some community contributions.
We've got BoxLang Quick Tips, Better Web Debugging by Ray Camden.
If you haven't been following it, he's got kind of an ongoing BoxLang Quick Tips series
that he's doing.
And this one is related to some configuration for the BoxLang mini server that just makes
debugging a little bit easier.
So you should go and check that one out.
You might learn something helpful.
He mentions right in the beginning of the blog post that this was extremely useful to him
and something that he wished that he would have found sooner.
So save yourself the pain that Ray Camden had to go through and learn how to configure the
mini server.
All right.
And then we've got another series.
This one is out on CFCast and BoxLang Academy.
This is deploying BoxLang in the cloud video series, which sounds really awesome.
This is led by Ortus's own Oscar Tisnado, who knows a lot about DevOps and deployment and
things like that.
So definitely go and learn from him and go and see how easy it is to launch BoxLang in the
cloud.
Okay, that takes us out of our BoxLang news for the week.
Let's jump into some CFML updates from around the community.
The first one I wanted to look at was there was a blog post posted by James Moberg about a
CSV processing speed test.
It was a very interesting result.
So he took a 250 megabyte CSV data set and processed it in a few different ways.
So used the ColdFusion 2025 CSV read or sorry, he hasn't used that yet because it's not
cross platform and he has clients and use cases that go all the way back to I think CF
2016.
CFML, which is one of my favorite libraries, he said took, you know, 22 seconds to 120
seconds, which is.
pretty big and then took an additional 50 seconds to do like an in memory query or
queries.
So maybe there's some improvements to be look at there.
He mentioned Java buffered read took about seven seconds and, but it would need some extra
logic to process malformed CSVs and open CSV was two to 10 seconds, which was not too bad.
So, and that didn't include any
Command line tools using like C of execute.
So as always, when you're looking at performance, you gotta measure it before you decide
what's the best tool for your job.
Next, we have a blog post from Ben Nadel.
He titles it normalizing query cross joins data using namespaces in ColdFusion which I
wasn't sure what that title meant until reading his blog post, which the idea here was
when you usually he says he usually grabs data from one table.
Occasionally, when you need it from another, he'll do a join, but he wants that data to
come back as an array of nested values.
Right?
So if he was in this case, grabbing, um, homes and shares together, he wants to see those
all nested in structs.
So he comes up with kind of a naming scheme and to do that and then process that.
Um, so you can check out that blog post to see kind of how that works.
You can also check out, uh, quick to see how it does it for you.
and exactly kind of this way without you having to name the columns in any certain way.
Sorry, I had to throw that out there.
Some real-time follow-up James is in the chat here and he mentioned he has done some of
the CF 2025 tests, but also the Command line tools are executing in sub seconds That's not
how you'd say that they're executing in less than a second instead of multiple seconds, so
Looks like if performance is really your your key here.
You're gonna want to use a Command line tool and process it that way
So thanks for that, James.
Yep, and would definitely be interesting to see how BoxLang stands up with those numbers.
Do we have, I know we have a BX spreadsheet.
Does it do CSVs or is that meant for something else?
That's a good question.
I'm not actually sure.
go look at that.
Well, while you are doing that, I will share about another blog post from Ben Nadel.
So this one is titled, 'Functions for Coalescing Values in ColdFusion'.
And this is actually a really interesting blog post where Ben Nadel is using some
functional programming paradigms in order to kind of replace the Elvis operator or the
null coalescing operator.
And if you question why anyone would replace language constructs with functions, I would
encourage you to look into functional programming because they love to do that.
And it doesn't make sense at first until you learn why and then you catch the bug and you
start replacing all of your language constructs with functions.
But it's a pretty interesting blog post you can go through and he does a really great job
of outlining some of the different ways that he leverages that to make his code.
reusable and also some of the pitfalls that you can fall into with the Elvis operator
Things like you know bugs and stuff like that that have been brought to Adobe's attention
So check that one out.
I think it's a really good read
Yeah, I, I'm, I was with him on the, never use the Elvis operator because my code has to
run on, you know, Adobe whatever, like 2018, at least up to the current day.
And it's just not reliable.
So yeah, I'm always writing something like that.
to your point about functional programming, I remember the first time encountering Haskell
and learning that not only
you know, do they write all the functions for everything, but they, can define your own
operators in the code.
And it's just like, so people are rewriting or like inventing new operators and then
that's in their code.
like, what is this?
And all it is is a function that if you would normally call, you know, function passing an
A and B, you can do a operator B and it's the same.
It's just how it looks.
And I'm like these languages.
bonkers.
So
Yeah.
Yep.
Well, everyone needs a time in their life when they find out about functional programming
and then take it too far.
I think that's a, it's a rite of passage.
The question is if you come back or if you stay over there in those functional programming
languages.
So good times.
All right.
Let's talk about some events.
We have one happening today, 7 PM Central.
It's the MidMichigan ColdFusion user group.
And Ray Camden is giving an introduction to BoxLang.
So we'll throw a link to their site.
here in the show notes and in the chat.
So if you're listening live, you're going to hear about it.
If you're listening to this later, it already happened.
So go check out the video of it because I do believe they put those up on YouTube.
All right, awesome.
An event we have upcoming on October, November 5th is the ColdBox, the Ocho webinar led by
Luis Miano, creator of ColdBox.
So that's gonna be from 11 a.m.
to 12 p.m.
Central time.
There is a registration link which is going live today.
So you should make sure, it's a free webinar, but we do ask that people would register
first.
So go and do that if you're interested in attending.
and doing a deep dive into some of those awesome new features we talked about.
Coming up in December, December 9th, there is a Cold Fusion Security Training put on by
Pete Freitag, a foundio.
We'll put the link to that.
You can sign up today.
Those are, uh again, always a great thing to go through, bring your own application and
see how you can improve the security of your application in Pete's workshop.
Yep.
All right.
And we've got a really fun announcement, one of my favorite ones, Into The Box 2026, Call
for Speakers.
It is open.
And we would love to hear some talks that you guys are interested in submitting or that
you would just like to hear if you're thinking about attending.
So go ahead and uh first, if you haven't done so already, you should go over to the Into
the Box website and...
purchase a ticket so that you can attend and hear all the great talks and participate in
the community.
And then also you should go to the website and submit a talk that you would like to give.
We'll be going through those pretty soon.
I'm not actually sure what the deadline is for those.
I think we still have a couple of months, maybe.
Let's see if it says on here.
I don't see.
date on it.
I click in.
Midnight December 1st.
You got a month and a half.
Month and a half.
make sure to put some in now so that you don't forget and then also spend a month
polishing some ideas and put them in again right before the deadline.
A reminder that the tickets right now for Into The Box are what we like to call blind
tickets.
So you are buying it blind in the sense that you don't know what the sessions are going to
be, but you know they're going to be awesome.
And in return, we give you the best deal you're going to get on Into The Box tickets.
So it's a great deal for you.
You know it's going to be good.
You've come to Into The Box before.
So jump in, save some money.
And of course, if you do get accepted as a speaker, we'll refund that ticket.
We're going to pay for you to come there.
Pay for your ticket.
So hope to see you at Into The Box.
Last it is October and this used to be a much bigger deal Hacktoberfest is going on which
is the How do you put it used to be put on my github and digital ocean it probably still
is maybe it's put on by some other people now but the idea is to contribute the open
source in the month of October and Get mostly digital swag.
but Hacktoberfest is still going on.
All of the Ortus repos are marked as being open for contributions.
So it will contribute if you come and open a poor request, even if it's just typos or
docs, those all count.
Every one of our docs pages should have a little button in the
corner of every page that says, I want to edit this page.
It'll take you to GitHub and you're able to help us keep our docs up to date.
Typo free ad examples, any of that, all of it helps.
And thank you to anybody who does or has participated in our open source projects with us.
Okay, that brings us to the end of our podcast today.
Thank you so much for joining us.
As always, we want to end by thanking our Patreon supporters, individuals and companies
personally supporting our open source initiatives, powering all these great things like
CommandBox, ForgeBox, ColdBox, and all our other favorite boxes.
Funding the cloud infrastructure that we use to power package management with CommandBox
and ForgeBox
You can support us at patreon.com slash Ortus Solutions.
Get some great perks like access to the BoxTeam Slack, a private forum on the community
website and also bronze supporters and ups get a forge box pro and CF cast subscription as
a perk.
You can see all our sponsors on our website OrtusSolution.com and thank you everybody for
joining us today.
We hope you have a great rest of October.
All right, thanks everyone.
Join our newsletter
Switch to Modernize or Die ® Podcast - SoapBox Edition - Switch to Modernize or Die ® Podcast - Conference Edition
Music from this podcast used under Royalty Free license from SoundDotCom and BlueTreeAudio
© 2019 Ortus Solutions
